如何阅读java核心技术_Java核心技术阅读笔记

1、一个文件里只能有一个public类,且需与文件名相匹配,但可以有任一数目非public类。

2、访问器(get方法)和修改器(set方法),访问器不要返回可变对象。

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

classEmployee

{privateDate hireDay ;publicDate getHireDayO

{return hireDay ; / /Bad

}

}

Employee harry=. .

Date d=harry . getHi reDayO ;double tenYearsInMilliSeconds = 10 * 365.25 * 24 * 60 * 60 * 1000;

d . setTime ( d . getTime ()- ( long) tenYearsInMilliSeconds ) ;//破坏了封装性,d和hireday指向同一个地址,导致d可以直接修改类的私有属性数据//应该返回 return (Date)hireDay.clone();//Ok

View Code

3、数据域初始化顺序:初始化为默认值(0,false,null)->初始代码块->构造函数  (静态初始化块会在类第一次加载时初始化)

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

classEmployee

{private static intnextld ;private intid ;privateString name ;private doublesalary ;//初始代码块先初始化

{

id=nextld;

nextld+ +;

}public Employee ( doublesalary ){this.salary=salary;

}

}

View Code

4、强制类型转换之前使用objinstanceof Class判断是否可进行类型转换,obj 为一个对象,Class 表示一个类或者一个接口,当 obj 为 Class 的对象,或者是其直接或间接子类,或者是其接口的实现类,结果result 都返回 true,否则返回false。

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

booleanresult;if (obj == null) {

result= false;

}else{try{

T temp= (T) obj; //checkcast

result = true;

}catch(ClassCastException e) {

result= false;

}

}

instanceof伪代码

5、labmda类似匿名函数,自动实现函数式接口的抽象函数,因此要传入lambda表达式,需要提供函数式接口。只有一个抽象方法的接口都是函数式接口,最好还是加上@FunctionInterface,编译器会检测是否符合函数式接口规范。

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

public static void lambdaTest(intn,Runnable runnable){for(int i =0;i

runnable.run();

}

}public static voidmain(String[] args){

lambdaTest(10,()->{

System.out.println("重复");

});

}

View Code

6、iterator remove()和set()方法,移除或修改next()或previous()返回的元素,依赖于迭代器上一步的状态。而add方法只依赖于位置,在迭代器位置之前插入。

7、java -jar test.jar

java -classpath test.jar com.test

log4j.appender.File.File=/tmp/logs/log  /开头表示当前磁盘根目录 tmp/logs/log 表示项目根目录 与src、target等同级目录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值