计算机基础(一)

1.为了更好地组织类,java提供了包机制,包是类的容器,用于分割类名空间,如果没有指定的包名,所有的事例都属于一个默认的无名包。import只是引入源文件,并没有将源文件拷贝至此,只是告诉编译器使用了外部文件,定义在同一个包(package)中的类,可以不经过import直接引用。

2.在指令格式中,采用采用扩展操作码设计安的目的是为了保持指令字节长度不变而增加的寻址空间。(扩展操作码的目的是为了保证指令字长的情况下,能够表示更多的指令。)

3.依赖注入能够独立的开发各个组件,然后根据组件间的关系进行组装,依赖注入,可以降低各个组件中的耦合度,而不是增加依赖程度。 依赖注入提供使用接口编程。依赖注入在使用时动态的注入。

4.在JAVA中,float类型的数据初始化时必须使用后缀f,因为java默认的浮点类型是double,用后缀f表示的是float类型

5.科学计算机的特点是:高速度,大量储存,高自动化和高精度。

5.Switch语句后的控制表达式,只能是:short,char、int、long、整数型和枚举类型,不能是float、double、和变量、Boolean类型,String类型是java7开始支持的

6.例:int x=20,y=5 则语句System.out.println(x+y+“”+(x+y)+y)的输出结果为25255

    解析:无论什么运算,小括号都具有优先级编程,输出结果就变成了x+y+“”+25+y,然后从做向右以次计算,碰到" " 会自动将后面的转化为一个字符串,数字加字符串自转化为全部字符串,“25”+“”25”+“5”;

7.抽象类和接口具有不同的概念,抽象类是用于捕捉子类的通用性,接口是抽象方法的集合,实现接口必须实现接口的所有方法。接口可以继承一歌或者多个接口,而抽象类只能继承一个类或者实现多个接口。一个类只能继承一个类,或者可以实现多个接口。普通类实现接口必须要实现接口中的所有方法,而抽象类实现接口只需要实现接口中的抽象方法。

8.数组定义后,默认元素为0.

9.接口中的变量默认是 public static final 方法的默认是 public abstract。

10.运行数据区包括:虚拟机栈区,堆区,方法区,本地方法栈,程序计数器。

虚拟机栈区:也就是我们常常说的栈区,想成私有,存放基本类型,对象引用和returnAddress,在编译期间完成分配。

堆区,java堆,也称做GC堆,所有线程共享,存放对象的事例和数组,java堆是垃圾收集器管理的主要区域。

方法区:所有的线程共享,存储已被虚拟机加载的类信息,常量,静态常量,及时编译器编译后的代码数据,这个区域的内存回收目标主要是针对常量池的对象的回收类型卸载。

程序计数器:线程私有,每个线程都有自己独立的程序计数器,用来指示下一条指令的地址。

11.两个最基本JAVA回收算法:复制算法和标记清理算法。

复制算法:两个区域A和B,初始对象在A,继续存活的对象转移到B,此为新生代最常用的算法。

标记算法:一块区域,标记可达对象(可达性分析)然后回收不可达对象,会出现碎片,那么引出。

标记-整理算法:多了碎片整理,整理出更大的内存更大的对象。

两个概念:新生代和年老带。

   新生代:初始对象,生命周期短。

   永久代:长时间存在对象。

整个java的垃圾回收是新生代和年来代的协作,这种叫做分带回收。

ps:Serial New(并行)收集器,新生代采用的是复制算法,老年代采用的是标记算法。

       Parallel Scavenger(并行)收集器,针对新新生代,采用的是复制算法。

       Serial Old(串行)收集器,新生代采用的是复制算法,老年代采用的是标记算法。

       Parallel Old(并行)收集器,针对老年代采用的是标记算法。

       GMS收集器,给予标记清理。

      G1收集器,整体上上是及区域标记整理,局部采用复制。

综上:新生代基本采用复制算法,老年代采用标记整理算法。cms采用标记整理。

12.x/=--y  (x = x/(--y));自增 自减的优先级大于除。

13.所谓的构造方法:(1).使用关键字new实例化一个新对象的时候默认调用的方法。(2).构造方所完成的主要工作是对新创建对象的数据成员赋初值。使用构造方法的时候应该注意以下几点①构造方法名称和其所属的类名必须保持一致;②构造方法没有返回值,也不可以使用void;③构造方法也可以像普通方法那样被重载;④构造方法不能别static和final修饰;⑤构造方法不能被继承,子类使用父类的狗杂方法需使用Super关键字。

14.hashmap可以插入null的key或value,插入的时候,检查是够已经存在相同key,如果不存在,则直接插入。如果存在则用行的value替换就得value值。

15.abstract:abstract关键字可以修饰类或方法; final类方法都能是abstract,因为final修饰的类不能被继承; 抽象类不能被实例化,无法使用new关键字调用抽象类的构造器创建抽象类的事例,即抽象类不包含串方法,也不能被实例化。;含有抽象类的方法(包括直接定义了抽象方法;继承了一个抽象父类,但没有完全实现父类的所包含的父类方法;实现一个接口但是没有完全实现接口的抽象方法)只能被定义成抽象类。

16.数据:java的那些基本类型属于原生类,而数组是引用类型。不属于原生类,可以看成是一种对象。数组的大小一旦指定,就不可以进行改变。

17.JAVA关键字表:

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值