java 重新学习 (一)

一 垃圾回收特点

  1.垃圾回收的工作目标是回收物对象的内存空间,这些内存空间都是jvm堆内存里的空间,垃圾回收器值回收内存资源,对他的物理资源:数据库连接,磁盘I/O等资源则无能为力

  2.更快进行垃圾回收,代码可以设置引用变量为null,通过这种暗示垃圾回收器回收该对象。

  3.垃圾回收不可以预知性:内存消耗出现极限 或 CPU空闲

  4.Runtime对象的gc()或System.gc();方法不能准确空值垃圾回收机制的执行。

  5.java8 删除了 永生代内存PermGen ,而是改为使用本地内存来存储类的元数据信息,元空间Metaspace 。注:(永生代内存主要用于存储一些需要常驻的内存,通常不会被回收的信息。)

  6.java8 删除了传统的CMS 垃圾回收器 ,java9 默认采用低暂停的G1垃圾回收器。

二 封装:将对象的实现细节隐藏起来,通过一些公共方法暴露该对象的功能。

  继承:软件复用,子类直接获得父类的属性和方法

  多肽:子类对象可以赋给父类变量,同一类型的对象在执行同一个方法是,可能表现出多种行为特征。

 

三 基本类型:boolean 和 数值类型

       数值类型:整数类型 byte,short,int (默认),long,char 浮点类型 float,double(默认)

  引用类型:类,接口,数组类型

四 常用转义字符

  \t    \n   \"   \'     \\

五 char类型参与数值类型运算时  表达式自动提升为数值类型 除去(short,byte),所以char值需要对应ASCII值

        byte a = 16;
        char b = 'A' ;
                //打印结果为 81 
        System.out.println(a+b);        
View Code

 六.常量池 里 包括类、方法、接口、中的常量,也包括字符串的直接量,常量池值得是编译期被确定,并被保存在已编译的.class文件中的一些数据

        String sq = "hello";
        String sq2 = "hello";
        String sq3 = "hel"+"lo";
                //返回结果为true  ture ture 
        System.out.println(sq==sq2);
        System.out.println(sq==sq3);
        System.out.println(sq2==sq3);

java 会确保每个字符串常量只有一个,不会产生多个副本,sq3编译期就为hello 所以sq3也是常量池的引用
View Code

 七.除法运算符中,两个操作数有一个为浮点数,或者两个都为浮点数时,计算结果为无穷大 

//显示结果Infinity 无穷大的意思
System.out.println(5/0.0);
View Code

八.i++ ,++i

  i++ 先运算,运算后再赋值        ++i先赋值,赋值后的值参与运算 

 

posted @ 2018-10-26 11:21  稳不住  阅读(333)  评论(0编辑  收藏  举报