Java基础入学考blog-1

基础复习-第一天

 ----------- android培训java培训、java学习型技术博客、期待与您交流! ------------

配置java环境变量:

         JAVA_HOME:配置JDK的目录

         CLASSPATH:指定到哪里去找运行时需要用到的类代码(字节码)

         PATH:指定可执行程序的位置

        

         LINUX系统(在" .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     (将指定的环境变量声明为全局的)

                          

         windows系统:

                  右击我的电脑-->属性-->高级-->环境变量

                 

Java的运行过程:

         编译:生成可执行文件,效率高,但不跨平台

         解释:解释器把源文件逐行解释,跨平台但效率不高

        

         在java中:先编译后解释,把.java文件编译成.class字节码文件

                  Java源代码文件(.java文件)--->

                  Java编译器(javac)--->

                  Java字节码文件(.class文件,平台无关的)--->

                  Java解释器(java),执行Java字节码

 

Java的垃圾回收:

         由一个后台线程gc进行垃圾回收

         虚拟机判定内存不够的时候会中断代码的运行,这时候gc才进行垃圾回收

         缺点:不能够精确的去回收内存

         java.lang.System.gc();     建议回收内存,但系统不一定回应,他会先去看内存是否够用,够用则不予理睬,不够用才会去进行垃圾回收

         内存中什么算是垃圾:

                  不再被引用的对象(局部变量,没有指针指向的)

                 

java的安全性:

         沙箱机制:只能做沙箱允许的操作

         通过下面环节,实现安全

                  加载有用的类文件,不需要的不加载

                  校验字节码,查看允许的操作

                           查看代码和虚拟机的特性是否相符

                           查看代码是否有破坏性

                           查看是否有违规操作,如越界

                           查看类型是否匹配,类型转换是否能正确执行

                          

源程序:

         package 入学;              //相当于一个目录

        

         public classHelloWorld{

                  public static void main(String[] args){

                           System.out.println(“HelloWorld”);

                  }

         }

         注:

                  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):把源文件放在目录下

         由于工程的需要,将不同的源文件放在不同的目录下,从而引入了包。

         包可以看作就是一个存放java源文件的目录。

         在源码中声明一个包名:package p;(只能放在第一行,且最多只能是一行)

         如果指定多层包,那么在包名之间我们可以用.作为分隔符:package p1.p2.p3.p4;

         用“javac HelloWorld.java –d 绝对路径”,编译后生成的字节码文件就会放在指定的包结构下

         执行该程序需要用" java 包名.类名 "

         引进包中的某个类:import 包名.类名;

         引进包中的所有类:import 包名.*;

                          

注释:

         //      单行注释, 到本行结束的所有字符会被编译器忽略

         /* */ 多行注释,  在/*  */之间的所有字符会被编译器忽略

         /**  */          文档注释, java特有的,在/** */之间的所有字符会被编译器忽略

         可以用javadoc把java源程序中这种注释抽取出来形成html页面(只有写在包,类,属性,方法,构造器,引入之前的注释才可以进行抽取)

               

标识符:

         命名规则:

                  (1) 由字母、数字、下划线、$组成,不能以数字开头

                  (2) 大小写敏感

                  (3) 不得使用java中的关键字和保留字

        

         关键字:都是小写的,jdk1.2多了strictfp(精准浮点型),关键字 jdk1.4多了assert(断言)关键字, jdk1.5多了enum(枚举) 关键字

                  随着学习进度,会慢慢接触到的

                  true、false、null严格说不应该算关键字,应称其为保留字更合适

        

         习惯:

                  (1) 标识符要符合语义信息

                  (2) 包名所有字母小写

                  (3) 类名每个单词首字母大写,其它小写 //TarenaStudent

                  (4) 变量和方法:第一个单词小写,从第二个单词开始首字母大写 //tarenaStudent

                  (5) 常量:所有字母大写,每个单词之间用" _ "连接

                 

基本数据类型:8种

         1) 整型

                  byte       1B        8位       -128到127

                  short      2B        16位      -2^15到(2^15)-1

                  int          4B    32位      -2^31到(2^31)-1

                  long        8B      64位      -2^63到(2^63)-1

         2) 浮点类型

                  float        4B       32位      

                  double     8B          64位

         3) 字符类型

                char       2B        16位      

         4) 布尔型       1B

                  boolean    false/true

                 

         注:

                  1、Java中的自动类型提升问题。

                           1)、正向过程:从低字节到高字节可以自动转换。

                                    byte->short->int->long->float->double

                           2)、逆向过程:从高字节到低字节用强制类型转换。

                                    例:int a = (int)4.562;

                                    注:逆向转换将丢失精度。

                   2、boolean:只有true和false。

                   3、char:Java中用" \u四位十六进制的数字 (即使在注释中出现\u,后面如果跟的不是4个数字,也会报错)"表示将字符转换成对应的unicode编码,字符类型要用单引号括起来。

                   4、黙认浮点类型为double,float数据类型有一个后缀为" f "或" F "。

                   5、long类型有一个后缀,为" l " 或者" L "

        

引用数据类型:

         类、接口、数组

         引用类型 变量名 = new 引用类型名(参数);               //new后面一般跟的都是类的构造器

         成员:写在类体括号里面的

        

内存空间的分配:

         内存分为:

                  栈:存放简单数据类型变量(值和变量名都存在栈中),存放引用数据类型的变量名以及它所指向的实例的首地址

                  堆:存放引用数据类型的实例


----------------------- android培训java培训、java学习型技术博客、期待与您交流! ----------------------


详情请查看:http://edu.youkuaiyun.com/heima




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值