java细节笔记(9月16)

1、泛型仅仅是java的语法糖,它不会影响java虚拟机生成的汇编代码,在编译阶段,虚拟机就会把泛型的类型擦除,还原成没有泛型的代码,顶多编译速度稍微慢一些,执行速度是完全没有什么区别的.

2、实现GBK编码字节流到UTF-8编码字节流的转换:

操作步骤就是先解码再编码
用new String(src,"GBK")解码得到字符串
用getBytes("UTF-8")得到UTF8编码字节数组
 
3、正确计算42度(角度)的余弦值

double d=Math.cos(Math.toRadians(42))
因为Math.cos中的参数的单位是弧度
而你的42是角度,所以要先把42化成弧度,Math.toRadians就是把角度化成弧度
4、重载只要求参数列表不同,返回值无关。
 
5、使用的是类的全名称。所以不需要使用import
 
6、forward,服务器获取跳转页面内容传给用户,用户地址栏不变
redirect,是服务器向用户发送转向的地址,redirect后地址栏变成新的地址
 
7、Object的getClass作用是返回的是运行时的
包名+类名
8、加载驱动方法
1.Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
2. DriverManager.registerDriver(new com.mysql.jdbc.Driver());
3.System.setProperty("jdbc.drivers", "com.mysql.jdbc.Driver");
 
9、yte类型值大小为-128~127之间
 
10、
run()方法用来执行线程体中具体的内容
start()方法用来启动线程对象,使其进入就绪状态
sleep()方法用来使线程进入睡眠状态
suspend()方法用来使线程挂起,要通过resume()方法使其重新启动
 
11、
jvm堆分为:新生代(一般是一个Eden区,两个Survivor区),老年代(old区)。
常量池属于 PermGen(方法区)
 
12、
1、每调用一次构造方法,则执行一次构造块
2、静态块只在类加载的时候加载一次
3、有多个静态变量或块时,按声明顺序加载
 
13、首先:
成员方法又称为实例方法
静态方法又称为类方法
其次:
a,静态方法中没有this指针
c,可以通过类名作用域的方式调用Class::fun();
d,太绝对化了,在类中申请一个类对象或者参数传递一个对象或者指针都可以调用;
 
14、
常见的哈希冲突解决方法:
1.开放地址法
2.链地址法(拉链法)
3.再散列
4.建立一个公共溢出区
 
15、
sleep和wait的区别有:
  1,这两个方法来自不同的类分别是Thread和Object
  2,最主要是sleep方法没有释放锁,而wait方法释放了锁,使得敏感词线程可以使用同步控制块或者方法。
  3,wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在
    任何地方使用
   synchronized(x){
      x.notify()
     //或者wait()
   }
   4,sleep必须捕获异常,而wait,notify和notifyAll不需要捕获异常
 
16、枚举类有三个实例,故调用三次构造方法
 
 
 
posted @ 2017-09-16 17:10  londa  阅读(146)  评论(0编辑  收藏  举报