java基础知识点滴整理(一)

1.八种基本类型:boolean,byte,char,short,int,float,long,double(其中boolean占1bit,1/8字节;byte占1字节;short和char占2字节;int和float占4字节;long和double占8个字节)

2.补码的计算规则:正数的补码和原码相同;负数的补码是其反码+1;反码是对原码按位取反,只是最高位(符号位)保持不变

3.i++底层执行:i自增1,执行1步;i+=1底层执行i自增1再赋值给i,执行2步;i=i+1底层执行取i值,再加1,最后赋值给i执行3步

4.字符串拼接考虑数据量和线程安全问题,string是终态修饰,每次拼接都会new object,StringBuffer是线程安全的;StringBuilder是非线程安全

5.如下依次输出:

fs.TestClass
java.util.Date

因为getClass方法是在object中,final修饰,在类中调用getClass方法,默认调用的就是本类的,想输出父类,必须再次getSuperclass

import java.util.Date;

public class TestClass extends Date{
	public static void main(String[] args){
		new TestClass().test();
	}
	
	public void test(){
		System.out.println(super.getClass().getName());
		System.out.println(super.getClass().getSuperclass().getName());
	}
}

6.重载发生在本类中,多个方法形参列表不同本质是通过参数的静态类型而非实际类型作为判定依据,静态类型是编译器可知,所有以来静态类型来定位方法执行版本的分派动作,称为静态分派;

重写发生在子类中,本质是运行时jvm调用字节码指令时,两次invokevirtual指令把常量池中的类方法符号引用解析到了不同的直接引用上

7.Java中父子类静态代码块,静态变量,非静态代码块,非静态变量,构造函数加载顺序:父类静态资源(静态代码块和静态变量以代码中书写顺序为准)-->子类静态资源-->父类非静态资源(非静态代码块和非静态变量以代码中书写顺序为准)-->子类非静态变量-->父类构造函数-->子类构造函数

8.Integer将-128-127放入缓存中,即int和Integer转型时值为-128-127,不会新创建Integer实例(其初次创建时即加载到数组中)

9.Integer迭代器采用的是快速失败(fail-fast)机制,一旦在迭代过程中检测到该集合已经被修改(多线程导致),程序立即引发ConcurrentModificationException异常,而不是显示修改后的结果,这样可避免共享资源而引发的潜在问题

10.数组适合随意访问;链接适合频繁修改;因此对经常读取的可用arrayList;对频繁修改的用LinkedList

11.实际开发中,PreparedStatement能否替代Statement

   能替代,PreparedStatement接口继承Statement

  1>预编译方式sql和参数分离,有利于提高代码可能性和可维护性

  2>预编译语句被db编译器缓存,后期再执行相同语句就可以直接执行;而statement语句中,每次参数不同都需要重新编译

  3> statement直接进行字符串拼接,很可能出现sql注入

12.三种写入文件的方法:

                        //FileWriter
			FileWriter fw = new FileWriter("hello.txt");
			String str = "hello world";
			fw.write(str,0,str.length());
			fw.flush();
			
			//OutputStreamWriter
			OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("hello2.txt"));
			osw.write(str,0,str.length());
			osw.flush();
			
			//PrintWriter
			PrintWriter pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream("hello3.txt")));
			pw.println(str);

13.并行就是两个任务同时运行,就是甲任务进行的同时,乙任务也在进行。
并发是指两个任务都请求运行,而处理器只能按受一个任务,就把这两个任务安排轮流进行,由于时间间隔较短,使人感觉两个任务都在运行

14.远程通讯技术方式

  1>底层协议:基于Socket扩展的传输协议:http、tcp、udp;网络IO:bio、nio、aio

  2>应用级协议:按网络通信原理,将请求转换成流,通过传输协议传输到远端,远端计算机将收到的请求的流进行处理,处理完毕后将结果转换为流,并通过传输协议返回客户端


发布了25 篇原创文章 · 获赞 9 · 访问量 9万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章