发表于: 2018-03-09 22:06:37

1 368


今天所做的事情:


今天好像没做什么,在家是温习基础,去公司以后,空余时间把过去写过的代码又code了一遍。

就简单贴一点做的笔记吧,不然日报干巴巴的。



Java基础回顾:

在最底层,java中的数据是通过操作符来操作的。操作符具有优先级,可以括号进行处理。

操作符+,在上下文环境里面,意味着字符串连接,必要时还要执行字符串转换

操作符=,赋值,一般在对一个对象进行操作时,真正操作的是对象的引用,引用极有可能被覆盖,可以使用别名

 

算术操作符

有前缀式和后缀式。前缀式先进行运算,然后生成值。后缀式先生成值,后执行运算。

在赋值情况下,前缀式是将自身+1赋值,然后自身再+1,后缀式是将自身赋值,然后+1

 

关系操作符

生成布尔类型结果,==和!=比较的是对象的引用,所以无法比较对象的实际内容,需要用equals()

 

逻辑操作符

不可以将一个非布尔值当作布尔值在逻辑表达式中使用。可以简单理解为布尔与布尔进行逻辑处理,生成一个布尔。

短路效应,可以很好的提升效能。

 

直接常量

L/llongF/ffloatD/ddouble

十六进制: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类。

Packageimport关键字允许你做的,是将单一的全局名字空间分割开,使得无论多少人使用Internet以及Java开始编写类,都不会出现名称冲突问题。

 

Java解释器的运行过程:首先找出环境变量CLASSPATHCLASSPATH包含一个或多个目录,用作查找.class文件的根目录。从根目录开始,解释器获取包的名称并将每个句点替换成反斜杠,以从CLASSPATH跟中产生一个路径名称。得到的路径名称会与CLASSPATH中的各个不同的项连接,解释器就在这些目录中查找与你所要创建的类名称相关的.class文件。

 

/*

*待补充

*/ 



明天打算做的事情:把一些遗漏问题补充完毕。




收获:一天不写就手生,还是需要多多练习。


返回列表 返回列表
评论

    分享到