- 分类:Java
- 点击数:1929
这节比较简单,都是各种面试考烂了的东西。
类和属性的访问控制应尽可能严格
访问控制是Java语言中最重要的概念之一,它使得对数据的封装成为可能。好的数据封装可以有效分隔一个系统中的不同模块,增加系统可靠性,便于维护,而且使各模块的开发和重构完全独立,实现细节上的改动不会影响对外开放的API。
对于类,有两个访问级别:package-private和public。其中前者是默认的,如果一个类没有被声明为public,那么它就是package-private,也就是说,它只在其自己所在的软件包内可见。这两个级别的选择没什么复杂的:只有要作为API开放的类,才声明为public,其余实现的细节,则尽可能都声明为package-private。如果一个非public类只被另外一个类使用,那么它应该被定义成使用者的私有内嵌类(private nested class),这样可以进一步减小它的可见范围,使其更好地被保护。
- 分类:Java
- 点击数:1731
前一阵子准备雅思考试,没时间继续Effective Java,现在考完了,要捡起来。
实现Comparable接口
Comparable接口只有唯一一个方法:
public interface Comparable<T> { int compareTo(T t); }
compareTo方法的返回值是一个整数。对于a.compareTo(b),如果返回负值,则表明a < b;正值表明a > b;如果返回0,则说明a与b相等。如果a与b类型不同,应该弹出ClassCastException。
- 分类:技术
- 点击数:1550
今天为一个网站改数据,遇到个小问题。
从数据库中提取一系列记录,其中一列是一个业务编号,为通用性考虑,这一列采用了字符串类型,而其内容却是数字,比如"1","2","12"等等。今天删除了某些记录,又新加入了一些,所以这一列的顺序相对于主关键字来说就混乱了。提取的数据需要按这一列排序,于是就简单写了个查询:
SELECT product_type_label, product_name FROM product WHERE product_type = 'ENTREES' ORDER BY product_type_label;
结果自然是错的:
1 | 만두 Raviolis 餃子 |
10 | 떡볶이 Toppokki トッポッキ |
11 | Boulots assaisonnés |
12 | 육회 Steak tartare coréen ユッケ |
13 | 닭볶음면 Nouilles sautées avec poulet チキン焼きそば |
14 | Assortiment de beignets |
2 | 김밥 Maki coréen のり巻き |
3 | 김치전 Kimchijeon キムチジョン |
4 | 해물 파전 Crêpe coréenne de fruits de mer 海鮮チヂミ |
5 | 잡채 Jabchai チャプチェ |
6 | 깐풍기 Sauté de poulet カンプンギ |
7 | 오징어 볶음 Sauté de calamar piquant |
8 | 새우튀김 Beignets de crevettes 天ぷら |
9 | 김치돼지볶음 Sauté de Kimchi avec porc キムチ豚炒め |