发表于: 2018-03-09 22:06:37
1 369
今天所做的事情:
今天好像没做什么,在家是温习基础,去公司以后,空余时间把过去写过的代码又code了一遍。
就简单贴一点做的笔记吧,不然日报干巴巴的。
Java基础回顾:
在最底层,java中的数据是通过操作符来操作的。操作符具有优先级,可以括号进行处理。
操作符+,在上下文环境里面,意味着“字符串连接”,必要时还要执行“字符串转换”
操作符=,赋值,一般在对一个对象进行操作时,真正操作的是对象的引用,引用极有可能被覆盖,可以使用“别名”。
算术操作符
有前缀式和后缀式。前缀式先进行运算,然后生成值。后缀式先生成值,后执行运算。
在赋值情况下,前缀式是将自身+1赋值,然后自身再+1,后缀式是将自身赋值,然后+1。
关系操作符
生成布尔类型结果,==和!=比较的是对象的引用,所以无法比较对象的实际内容,需要用equals()。
逻辑操作符
不可以将一个非布尔值当作布尔值在逻辑表达式中使用。可以简单理解为布尔与布尔进行逻辑处理,生成一个布尔。
短路效应,可以很好的提升效能。
直接常量
L/l:long,F/f:float,D/d:double
十六进制:0x/X+0-9/大小写a-f
八进制:0+0-7
指数记数法
在java里面,e代表10的幂次。
按位操作符
用来操作整数基本数据类型中的单个bit,也就是二进制。
移位操作符
操作对象也是二进制,只能用来操作整数类型
三元操作符
boolean-exp ? value0 :value1
如果boolean-exp结果为true,则计算value0,为false的话,计算value1.
使用要慎重。
类型转换操作符
有窄化转换,扩展转换
标签
在java中,标签起作用的唯一的地方就是刚好是在迭代语句之前,中断循环后,可以直到标签所在的地方。如果有循环嵌套,并且想从循环嵌套内break/continue。
构造器
构造器采用和类相同的名称,不接受任何参数的构造器叫做默认构造器,如果有了构造器形式参数,就可以在初始化对象时提供实际参数。构造器是一种特殊类型的方法,它没有返回值。
重载Overload
方法名相同,参数列表不同。
如果传入的数据类型小于方法中声明的形式参数类型,实际数据类型就会被提升。Char类型无法无法找到可接受的,就会把char类型提升为int类型。如果大于的话,就进行窄化处理。
this
在方法内部获得对当前对象的引用,而且只能在方法内部使用,表示对“调用方法的那个对象”的引用,如果在方法内部调用同一个类的另一个方法,就不必使用this,直接调用即可。
也可以将当前对象传递给其他方法。
内存清理
对于某些对象不是由new创建的,可以使用finalize()方法。特殊情况一般发生于调用本地方法的情况下。
1, 对象可能不被垃圾回收
2, 垃圾回收并不等于“析构”
3, 垃圾回收只与内存有关
Java不允许创建局部变量,必须使用new创建对象。如果JVM并未面临内存耗尽的情况,一般是不会浪费时间去执行垃圾回收以恢复内存的。
强制进行终结动作:System.gc()
对象的创建过程,以类Dog()为例子:
1, 即使没有显式地使用static关键字,构造器实际上也是静态方法。当首次创建Dog的对象时(构造器可以看作静态方法),或者Dog类的静态方法/静态域首次被访问时,java解释器必须查找类路径,以定位Dog.class文件。
2, 然后载入Dog.class,有关静态初始化的所有动作都会执行。因此,静态初始化只在Class对象首次加载的时候进行一次。
3, 当用new Dog()创建对象时,首先将在堆上为Dog对象分配足够的存储空间。
4, 这块存储空间会被清零,这就自动地将Dog对象中的所有基本类型数据都设置成了默认值(对数字来说就是0,对布尔型和字符型也相同),而引用则被设置成了null。
5, 执行所有出现于字段定义处的初始化动作
6, 执行构造器。
数组
是相同类型的、用一个标识符名称封装到一起的一个对象序列或基本类型数据序列。
编译器不允许指定数组大小,为了创建相应的存储空间,必须写初始化表达式。
如果是非基本类型的数据,那么就创建了一个引用数组,必须得创建新的对象,并把对象赋值给引用,初始化进程才算结束。
可变参数列表,可以将数据变成参数进行传递。
枚举
枚举类型的实例都是常量。
使用enum,需要创建一个该类型的引用,并将其赋值给某个实例。
Enum可以在switch内使用
包
类库实际上是一组类文件,其中每个文件都有一个public类,以及任意数量的非public类。
Package和import关键字允许你做的,是将单一的全局名字空间分割开,使得无论多少人使用Internet以及Java开始编写类,都不会出现名称冲突问题。
Java解释器的运行过程:首先找出环境变量CLASSPATH,CLASSPATH包含一个或多个目录,用作查找.class文件的根目录。从根目录开始,解释器获取包的名称并将每个句点替换成反斜杠,以从CLASSPATH跟中产生一个路径名称。得到的路径名称会与CLASSPATH中的各个不同的项连接,解释器就在这些目录中查找与你所要创建的类名称相关的.class文件。
/*
*待补充
*/
明天打算做的事情:把一些遗漏问题补充完毕。
收获:一天不写就手生,还是需要多多练习。
评论