第一次java考核:
1.Private和protect修饰符范围:
private: Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的类、属性以
及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问。
protect: 介于public 和 private 之间的一种访问修饰符,一般称之为“保护形”。被其修饰的类、
属性以及方法只能被类本身的方法及子类访问,即使子类在不同的包中也可以访问。
2.Swich语句
括号内表达式的类型必须是byte、short、int或char。
switch语句的三个重要特性需要注意:
1.switch与if的不同之处在于,该switch 只能测试是否相等,而if可以计算任何类型的布尔表达式。也就是说,switch只查找表达式的值与其case常量之一之间的匹配。
2.同一个switch中的任何两个情况常数都不能有相同的值。当然,switch语句和封闭的外部switch 可以具有相同的大小写常量。
3.switch语句通常比一组嵌套的ifs更有效。
3.三目运算符
形式:表达式c ? a:b
如果条件是真的,则执行 ? 和 : 之间的语句;否则,执行 : 之后的部分。
4.Foreach
foreach 循环语句的语法格式如下:
for(类型 变量名:集合) {
语句块;
}
类型”为集合元素的类型,“变量名”表示集合中的每一个元素,“集合”是被遍历的集合对象或数组。
使用 foreach 循环遍历数组元素时无须获得数组长度,也无须根据索引来访问数组元素。
当使用 foreach 循环来迭代输出数组元素或集合元素时,通常不要对循环变量进行赋值,虽然这种赋值在语法上是允许的,但没有太大的实际意义,而且极容易引起错误。
5.封装
在面向对象程式设计方法中,封装是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。
封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。
要访问该类的代码和数据,必须通过严格的接口控制。
封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。
适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。
封装的优点
1. 良好的封装能够减少耦合。
2. 类内部的结构可以自由修改。
3. 可以对成员变量进行更精确的控制。
4. 隐藏信息,实现细节。
6.数组的初始化
所谓数组初始化就是让数组名指向数组对象的过程,该过程主要分为两个步骤,
一是对数组对象进行初始化,即为数组中的元素分配内存空间和赋值,
二是对数组名进行初始化,即为数组名赋值为数组对象的引用。
7.驼峰命名法
骆驼式命名法就是当变量名或函数名是由一个或多个单词连结在一起,而构成的唯一识别字时,第一个单词以小写字母开始;从第二个单词开始以后的每个单词的首字母都采用大写字母
小驼峰法:
变量一般用小驼峰法标识。驼峰法的意思是:除第一个单词之外,其他单词首字母大写
大驼峰法:
相比小驼峰法,大驼峰法把第一个单词的首字母也大写了。常用于类名,属性,命名空间等。
8.变量的命名:
1、必须以字母、下划线、或者美元符$开头;
以美元符$ 开头命名的变量虽然能够编译通过但是不建议使用;
中文也可以作为命名开头且编译也能通过,但是不建议使用。
2、除开头外后面的部分可以有字母、下划线、美元符$以及数字组成;
3、虽然变量名不限制长度,但能表达清楚命名的含义即可;
4、变量名不可以和java的关键字冲突;
5、在命名中大小写是有区别的。
9.对象的实例化过程
1.对象的实例化过程是分成两部分:类的加载初始化,对象的初始化
2.要创建类的对象实例需要先加载并初始化该类,main方法所在的类需要先加载和初始化
3.类初始化就是执行<clinit>方法,对象实例化是执行<init>方法
4.一个子类要初始化需要先初始化父类
第二次java考核:
1.JDK,JVM,JRE的区别:
JDK是 Java 语言的软件开发工具包(SDK)。在JDK的安装目录下有一个jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib合起来就称为jre。
JDK是java开发工具包,JDK(Java Development Kit) 是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。
JRE(Java Runtime Environment,Java运行环境),包含JVM标准实现及Java核心类库。JRE是Java运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器)
JVM(Java Virtual Machine),即java虚拟机, java运行时的环境,
1.三者联系:
JVM不能单独搞定class的执行,解释class的时候JVM需要调用解释所需要的类库lib。在JDK下面的的jre目录里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和起来就称为jre。JVM+Lib=JRE。总体来说就是,我们利用JDK(调用JAVA API)开发了属于我们自己的JAVA程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成JAVA字节码,在JRE上运行这些JAVA字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。
2.三者区别:
a.JDK和JRE区别:在bin文件夹下会发现,JDK有javac.exe而JRE里面没有,javac指令是用来将java文件编译成class文件的,这是开发者需要的,而用户(只需要运行的人)是不需要的。JDK还有jar.exe, javadoc.exe等等用于开发的可执行指令文件。这也证实了一个是开发环境,一个是运行环境。
b.JRE和JVM区别:JVM并不代表就可以执行class了,JVM执行.class还需要JRE下的lib类库的支持,尤其是rt.jar。
2.java二维数组特别之处
java语言的二位数组不一定是规律的矩形。对于不规则矩形二位数组,在定义时只需给出高层维数即可。
3.子类无参构造方法和父类无参构造方法的执行顺序
子类继承父类各部分执行顺序为:
父静态代码块--子静态代码块--父非静态代码--父无参构造函数--子静态代码块--子构造函数--方法。
4.数组的特点
1.数组是相同数据类型的元素的集合。
2.数组中的各元素的存储是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起。
3.数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。