- Math类中提供了三个于取整有关的三个方法ceil、floor、round,其中ceil是向上取整,floor是向下取整,round是四舍五入,也就是加0.5
- switch括号里面的表达式在java1.6之前是不可以支持String类型的,1.7之后是可以支持 String类型的,但long类型的一直是不可以支持的,必须要转化成int类型。
- 重载和重写,也就是Overload和Override,Overload是重载,方法名相同,参数不相同,方法的返回值可以不相同,但是当参数列表相同时,方法的返回值不相同时不能构成方法重载;Override,方法重写,也就是子类覆盖父类的方法,返回值是子类返回值的类型 <=父类返回值的类型,(方法重写一般是用在接口和实现类里面),还有父类的方法为private时,子类不能重写其父类私有的方法。
- java常量池不在堆中也不在栈中,是独立存在的内存空间管理。 1.栈:
存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。) 2.堆:存放所有new出来的对象。 3.常量池:存放字符串常量和基本类型常量(public static final).
对于字符串:其对象的引用都是存储在栈中的,如果是编译期已经创建好(直接用双引号定义的)的就存储在常量池中,如果是运行期(new出来的)才能确定的就存储在堆中。对于equals相等的字符串,在常量池中永远只有一份,在堆中有多份。
5.Session将信息保存在服务器上,而Cookie保存在客户端上 Session比Cookie更占资源
6.java中不能被继承的类有:
7.Java中is-a 和has-a 的区别
1.“is-a”是继承的关系,比如人是动物,人和动物是继承的关系;
2. "has-a"是聚合的关系,比如人有眼睛,人和眼睛是聚合的关系;
3. 如果一个类继承自另一个类,那么它们是"is-a"的关系,如果一个类的成员中引用了一个类,那么它们是“has-a”的关系。
is-a 用于继承
has-a 是组合 一个类中包含了其它类
8.线程同步主要是用来解决程序拥堵的状况的,,,,,,,,,线程同步 在同一个线程运行 前面的运行完在运行后面的 有先后顺序 线程异步 是几个程序同时运行 CPU会每个程序都运行一遍。
9.实现线程同步的方法:
(同步方法)
(同步代码块)
synchronized(object){ }
10.最常用的实现线程的方法有两种,
(1)继承Thread类,重写run方法,
使用自定义的线程类 调用构造方法,然后生成对象,调用start 方法,启动线程。
MyThread myThread = new MyThread();
myThread.start();
(2):实现Runnable接口。
MyRunnable target = new MyRunnable();
Thread thread = new Thread(target);
thread.start();
11.加载.class有以下几种途径:
从本地直接加载 ;通过网络加载.class文件;从类似于jar,zip等其他文件加载.class文件; 通过动态代理的方式,将原文件编译成.class文件
java的ClassLoader分为两大类 :java中自带的类加载器(根加载器:将class文件从文件或者本地存储中读取到内存中的过程;扩展类加载器:要加载java中扩展的一些jar包中的文件;应用类加载器:要用来加载一些用户自己写的类的.class文件)
用户自定义的类加载器(加载;连接;初始化)
今天先到这里 明天继续