(在" .bash_profile "下的环境变量设置)
JAVA_HOME=/opt/jdk1.5.0_06 CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar PATH=$PATH:$JAVA_HOME/bin:. export JAVA_HOME CLASSPATH PATH
将指定的环境变量声明为全局的
右击我的电脑-->属性-->高级-->环境变量
在java中:先编译后解释,把.java文件编译成.class字节码文件
由一个后台线程gc进行垃圾回收
虚拟机判定内存不够的时候会中断代码的运行,这时候gc才进行垃圾回收
java.lang.System.gc(); 建议回收内存,但系统不一定回应,他会先去看内存是否够用,够用则不予理睬,不够用才会去进行垃圾回收
通过下面环节,实现安全
package mypack; //相当于一个目录 public class HelloWorld { public static void main(String[] args) { System.out.println(“Hello World”); } }
注:
1、文件名必须和public修饰的类名一致,以.java作为文件后缀,如果定义的类不是public的,则文件名与类名可以不同。
2、一个.java文件中可以有多个class,但是只有一个public修饰的类。
3、java源代码文件编译后,一个类对应生成一个.class文件
4、一个java应用程序应该包含一个main()方法,而且其签名是固定的,它是应用程序的入口方法,可以定义在任意一个类中,不一定是public修饰的类
javac -d . HelloWorld.java
含有包的类,在编译的时候最好用上面的格式,-d指的是让该类生成的时候按照包结构去生成," . "指的是在当前路径下生成
如果不用上面的格式,也可以用javac HelloWorld.java,但是需要注意的是包结构就要由自己去建立,然后将生成的.class文件放到该目录下
java mypack.HelloWorld
将字节码文件交给Java虚拟机去解释执行
需要注意的事,必须使用包名.类名去解释执行
把源文件放在目录下
由于工程的需要,将不同的源文件放在不同的目录下,从而引入了包。
在源码中声明一个包名:package p;(只能放在第一行,且最多只能是一行)
如果指定多层包,那么在包名之间我们可以用.作为分隔符:package p1.p2.p3.p4;
用“javac HelloWorld.java –d 绝对路径”,编译后生成的字节码文件就会放在指定的包结构下
- 执行该程序需要用" java 包名.类名 "
- 引进包中的某个类:import 包名.类名;
- 引进包中的所有类:import 包名.*;
可以用javadoc把java源程序中这种注释抽取出来形成html页面(只有写在包,类,属性,方法,构造器,引入之前的注释才可以进行抽取)
jdk1.2多了strictfp(经准浮点型),关键字 jdk1.4多了assert(断言)关键字, jdk1.5多了enum(枚举) 关键字
随着学习进度,会慢慢接触到的
1)、正向过程:从低字节到高字节可以自动转换。
byte->short->int->long->float->double
2)、逆向过程:从高字节到低字节用强制类型转换。
例:int a = (int)4.562;
注:逆向转换将丢失精度。
引用类型 变量名 = new 引用类型名(参数); //new后面一般跟的都是类的构造器
成员:写在类体括号里面的
内存分为:
byte a = 1; byte b = 2; a = a+b; //编译出错自动类型提升成int a += b; //自加没有自动类型提升问题
a和b作某种运算
把高字节转成低字节,需要作强制类型转换. byte c=(byte)a+b;
移负数位,则将该数值加32后再进行移位
数值的2进制是按照补码保存的
同Core C++
声明数组:
数组能以下列形式声明:
JAVA中推荐用:类型[] array;
类型 黙认值
byte | 0 |
short | 0 |
int | 0 |
long | 0l |
float | 0.0f |
double | 0.0d |
char | \u0000 |
boolean | false |
reference tyeps | null |
int[] i2=new int[]; //error
初始化数组:
int[] i; //定义数组 i = new int[2]; //分配空间 i[0] = 0; //初始化 i[1] = 1;
int[] i = {0,1}; //显示初始化 {}中有几个值,则数组长度为几 Student[] s = {new Student(),new Student()};
int[] i=new int[]{1,2,3}; //后面[]中不可以写数值 int[] i1=new int[3]{1,2,3}; //error
int[][] i1 = new int[2][3]; int[][] i4 = {{1,1,1},{2,2,2},{3,3,3}}; int[][] i3 = new int[][3]; //不允许高维没分配空间而先给低维分配空间 int[][] i2 = new int[2][]; i2[0] = new int[2]; i2[1] = new int[3];
系统类System提供的
static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)