Java学习笔记,
Java学习笔记,
1、JRE=JVM+Java系统类库;
JDK=JRE+编译运行等等命令工具。
2、JVM内存分为“堆”、“栈”和“方法区”三个区域,分别用于存储不同的数据。
堆用于存储使用new关键字创建的对象,及对象的成员变量。
栈用于存储当前调用方法的局部变量,方法调用结束栈的这一部分即清空。
方法区用于存放类生成的字节码.class文件,类的成员函数及静态变量(static修饰)和常量,所有内容整个进程只存放一份。
3、使用System.gc()用于建议JVM马上调度垃圾回收线程回收资源。
内存泄漏的条件:(1)对象无用;(2)对象无法被回收。
避免内存泄漏:不再使用的对象应及时将引用设置为null。
4、访问控制符控制成员的访问权限如下:
修饰符 |
本类 |
同一个包中的类 |
子类 |
其他类 |
public |
可以访问 |
可以访问 |
可以访问 |
可以访问 |
protected |
可以访问 |
可以访问 |
可以访问 |
不能访问 |
默认 |
可以访问 |
可以访问 |
不能访问 |
不能访问 |
private |
可以访问 |
不能访问 |
不能访问 |
不能访问 |
5、随机数生成法,以下方法用于生成0~99的随机数:
(1)int a = (int) (Math.random()*100); //double型强转为int
(2)Random rand =new Random();
int a=rand.nextInt(100); //生成随机整数
double d=rand.nextDouble(100); //生成随机Double
6、static静态块初始化静态资源
eg. 初始化图片:
static{
try{
background = ImageIO.read(ShootGame.class.getResource("background.png"));
}catch(Exception e){
e.printStackTrace();
}
}
7、paint() 调用方式有两种(paint()只能由系统来调):
(1)frame.setVisible(true);
(2)repaint();
8、 Arrays.copyOf(array1, array1.length+k);
函数作用:将数组array1扩充k个字符
System.arraycopy(array0, a0, array1, a1, k);
函数作用:将array0数组从a0开始的k个字符复制到array1数组从a1开始的k个位置。(a0, a1计数从0开始,array1从a1开始的k个字符被array0从a0开始的k个字符替换,而不是将array1中的字符后移。)
将array0中的字符复制到array1的末尾:
System.arraycopy(array0, 0, array1, array1.length-array0.length, array0.length);
9、函数System.currentTimeMillis()返回1970年1月1日零点到此刻的毫秒数(1970年为Unix元年)
eg. long time = System.currentTimeMillis();
System.out.println(time);
10、final用法:
(1)修饰变量:变量不可被改变,且修饰变量时必须声明同时初始化,或者在构造方法中初始化;
eg.
class Moo{
final int num1 = 5; //声明同时初始化
final int num2;
Moo(){
num2 = 6; //构造方法中初始化
}
}
(2)修饰方法:方法不可被重写;
(3)修饰类:类不可被继承,但是可以去继承别的类。
11、static final常量用法:
(1)必须声明同时初始化;
(2)通过类名来访问;
(3)不能被改变;
(4)常量名建议所有字母大写;
(5)优点:编译时被直接替换为具体的数,效率高。
12、Eclipse使用:
(1)修改界面样式(即黑底或白底):
<1>打开:window->preferences->General->Appearance;
<2>修改:可修改Theme和Color and Font theme。
(2)设置代码输入窗口字体大小:
<1>打开:window->preferences->General->Appearance->Colors and Fonts;
<2>选择:Basic列表中的Text Font;
<3>修改:点击Edit,即可修改脚本、字体、字形和大小(脚本有GB2312、西欧语言等);
默认值:脚本:西欧语言;字体:Consolas;字形:常规;大小:10号。
(3)快速注释程序代码快捷键:
<1>Ctrl+/:用"//"注释;
Ctrl+/:解开注释。
<2>Ctrl+Shift+C:用"//"注释;
Ctrl+Shift+C:解开注释。
<3>Ctrl+Shift+/:用"/* */"注释;
Ctrl+Shift+\:解开注释。
(4)格式化代码快捷键:
Ctrl+Shift+f。
13、所有子类共有的属性抽象成父类,部分子类共有的属性抽象成接口。
接口中的变量都是常量,可以声明为public static final int ABC = abc; 也可以直接声明为public int ABC = abc; 接口会自动加上static final。
接口中的方法都是抽象方法,可以声明为public abstract int function(); 也可以直接声明为public int function(); 接口会自动加上abstract。
14、在构造方法中初始化的都是成员变量。static变量都是在static静态块中初始化的。
15、Java Native Interface (JNI): 用于调用底层C库代码。
相关文章
- 暂无相关文章
用户点评