超时自由 cdh mpp impala decimal 小数
学习习惯很重要,复习,练习,今天学,明天复习,今月学,下月复习。每天学习一点点,不学点过意不去。
一个半月。
串javase,javaeeweb(servlet,jst,jstl)、过滤器、监听器、SSM。
jvm,跨操作系统,跨硬件。 java源码编译成虚拟机需要的java字节码(.class文件)。jvm(一个程序,转成操作系统可以运行的程序,现在jvm会将热点代码即时编译,下次使用时可以直接使用,速度很快(和c语言一样,直接编译成操作系统语言速度差不多))。classpath类的路径,java_home,找到java路径。path,在任何地方使用命令。
/**注释使用javac命令可以提取出来。jdk下的src.zip string.class等类。jdk1.9以后里面集成的jre删除了。
include文件里面是java本地接口。
标识符不能使用单独的关键字和保留字。java命名可以使用unicode字符集(中文、俄文等)里面的字符。goto、const两个保留字在java中没有任何实际意义。
char两个字节,放的是编码(010101),使用的utf-16字符变长编码方式。string底层是字符的数组,发现一个文字需要两个char的空间的时候就使用两个char来组成一个字符。
变量申明是申请内存空间。初始化是第一次赋值。对象中的成员变量会自动初始化。
按值分类,按声明位置。
基本类型保存的是值。引用类型保存地址(枚举、对象)。局部(方法体里面)、实例(成员变量)(对象)、类变量(静态变量)、方法参数(方法参数)
一整个栈空间中一个线程对应一个栈(一个线程一个桶)。main进栈,然后调用a()方法,在main上面进入一个a的方法。
GC:jvm会不停的扫描堆的空间,发现没用的对象就进行回收,没有引用型变量保存此堆的地址。(GC执行时,jvm会暂停)
jvm内存不能太小,因为会不断进行回收,太大,jvm暂停时间长。
a->b b->a 两个堆对象就不会被回收。
内存泄露:没有内存可用,内存不在你的管理范围之内。(java本身是不会内存溢出的,是程序员的思路导致gc无法回收无用 对象)
就高不就低,类型转换,加法 整数除整数得到的是 整数,除小数是小数
&& || java中 都是短路的,前面对了后面就不对了。前面是false就是false,后面有true就是true。
字符串连接符运算符+
语句:一个完整的执行单元,以分号结束表达式。表达式加了分号变成语句。表达式语句+声明语句+流程控制语句
语句加{}变成语句块:命名语句块和
\是转移字符。
switch中byte、short、int、char及其对应的包装类(隐式转为int)、enum(枚举)、java7以后可以使用String
default子句可选,不加break就会穿透。
dowhile里面后面的分号要加。
iterable(数组和实现了此接口可以进行foreach循环)、iterator
修饰符:四中(访问控制符(public\protected\包\private只能使用一个)、static、final(禁止重写,类前代表不能被扩展,成员变量前加,代表是常量,必须初始化,只能被初始化一次|| 方法上,不可以被子类重写 || 方法参数上面谁调用的时候被初始化,在方法题里面就不能被改参数的地址,但可以改里面的值如a.i|| )、default(jdk1.8后用来声明接口方法体))
final 、finally(try catch 不管有没有都要执行)、 finalize(GC回收的时候调用object里面的此方法,此方法本意是清理非内存的资源,但是gc什么时候运行呢?所以我们需要在资源使用完就关闭链接(如数据库的链接))
GC在什么时候运行呢?
三种:内存不够的时候;cpu空闲;主动调用system.gc.(虚拟机运行是可以禁用)
java中除了构造方法都必须有返回值,没有就是void(方法首字母小写)
jvm如何区分多个函数?方法签名:方法名和参数构成了方法签名,用于区分函数。(方法重写时)
重载,多个不同方法。
栈里面是一层一层的方法。堆里面是一个一个的对象。
数组里面的length是属性。数组也是特殊的对象,所以声明在堆里面,int arr1 = new int[10],而arr1声明在栈里面
会默认赋初值。
算法:解决特定问题,如排序,我们可以调用。
几维数组都是引用型变量,数组长度不可变。arraylist不可用的使用声明一个新数组。
浮点类型的数值默认是double类型。意思是计算中只要有浮点数,结果就是double类型的。
接口是对动作的抽象,而抽象类则是对对象的抽象。
线程是进程的执行路径。
switch中可以包含的值的类型是char、short、byte、int、java7之后可以是string。
---------待解决问题---
字符串连接符+
char两个字节,放的是编码(010101),使用的utf-16字符变长编码方式。string底层是字符的数组,发现一个文字需要两个char的空间的时候就使用两个char来组成一个字符。
答:char和string 使用的是utf16,所以呢,有些字符肯定没收录进去,没收录进去的
Instanceof
异常 重写
jvm如何区分多个函数?方法签名:方法名和参数构成了方法签名,用于区分函数。(方法重写时)