首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

小弟我的二十一天CoreJava 学习笔记

2012-12-18 
我的二十一天CoreJava 学习笔记第二十一天 网络编程46第一天 了解JAVA基础知识一、学习CoreJava的要求??1、

我的二十一天CoreJava 学习笔记

第二十一天 网络编程46


第一天 了解JAVA基础知识

一、学习CoreJava的要求

??1、上课一定要听懂(理解)

??2、课后一定要练习

??3、练完后要思考

二、Java的优势

1.简单:c++里面内存要自己去管理,而java里面有系统的垃圾回收器,Java中省去了对指针的操作,但并不是没有指针了,只是被封装了而已,

代替指针的是种新的变量,叫做引用,这个引用里面也是保存的一个对象的地址,它和指针的差别就是比指针功能要弱化了,也更简单了。

??2、安全,字节码的验证,c++中对指针的操作可能会导致内存栈的溢出,而在Java里面不用我们去担心这些问题,这些统统有JVM去替我们做。

??3、Java的跨平台性:用这个语言开发出来的程序可以在不同系统中运行:

?????源码是怎样成为可执行代码的

?????源码-->编译-->目标码(二进制机器码)-->连接-->可执行文件

?????由此看来,汇编、C、C++等语言都是不跨平台的,因为他们的编译过程就直接与当前系统挂钩了

?????C和C++源码都是跨平台的,我们所指的跨平台是基于编译过程中的跨平台,以上几种语言在不同

?????的系统中编译出来的目标码是不同的。

?????Java跨平台就是编译过程中的跨平台,怎么实现的呢,那就是Java虚拟机:

??????Java的源码编译过程:

??????源码-->编译-->字节码-->把字节码装载到虚拟机中运行

??????--JAVA虚拟机:JVM

??????屏蔽掉了不同平台的差异,为上层的字节码提供了一个统一的运行环境

??????虚拟机是为了给字节码提供统一的执行平台,每种操作系统所用的虚拟机是不同的,是为了统一

??????JAVA字节码的解析执行方式,如果没有虚拟机,在一种操作系统上写了JAVA代码,编译成字节码

??????后只能在本操作系统上运行,但是换一个操作系统的话就要重新再写一遍JAVA代码然后重新编译,

??????所以虚拟机提高了代码的复用性,实现了一次编写,多处使用的优点。

??????不同系统的Java虚拟机之前的源码和字节码部分都是跨平台的,从虚拟机就不是跨平台的了。

?????这样Java的字节码就可以直接用来传播,而不用传播源码了。

三、JDK/JRE/JVM

??JDK:JAVA开发工具包,比JRE多了一些开发和调试的命令,比如javac、java等等。

??JRE:JAVA运行环境

??JVM:JAVA虚拟机

??包含关系:JDK包含JRE,JRE包含JVM

??如果你搭建的Java开发环境是用来做Java开发的,那么就安一个JDK

??如果你不做开发,而只是运行别人开发调试好的程序,那么就只安装一个JRE就可以了

????一般服务器上就只安装JRE

??针对不同的操作系统有不同的JDK下载

??在JDK安装好后的文件夹中有个bin目录,里面一般是我们经常用到的一些命令,比如javac、java

??在JDK目录下有个src.zip文件,解压开后就是JDK类库中的源码,也就是rt.jar压缩文件中class

??文件的源码。

??jre目录是JDK自带的JRE,里面也有bin目录,一般存放的是运行时的一些命令

??jre文件夹中的lib文件中有一些jar文件,里面都是一些class文件在虚拟机运行时作为类代码

??其中一个比较重要的jar文件就是rt.jar,里面放的是JDK给我们提供的一整套类库的字节码

四、配置环境变量

??JAVA_HOME:JDK的安装路径

??CLASSPATH:类的搜索路径

??PATH:命令的搜索路径=$JAVA_HOME/bin-->javajavac

??

??Linux:

????--一般JDK是放在/opt/jdk1.6.0_05

????--配置环境变量的文件是主目录中的".bash_profile"文件(bash)

?????????? .profile(bsh),.cshrc(csh)

??????进入终端后:vi .bash_profile

??????在里面配置:

??????JAVA_HOME=/opt/jdk1.6.0_05

??????CLASSPATH=.

??????PATH=$PATH:$JAVA_HOME/bin:.......

??????export JAVA_HOME

??????export CLASSPATH

????--配置完后保存退出,然后source .bash_profile

??????在命令行打java命令验证是否配置成功,如果成功了,注销一遍系统

??Windows:

????--右键我的电脑-->高级-->环境变量-->在系统变量或者用户变量上配置-->

??????JAVA_HOME:当前机器上JDK的文件目录 "C:\Program Files\Java\jdk1.6.0_05"

??????CLASSPATH:类的搜索路径 "."当前目录

??????Path:命令的搜索路径 ...;%JAVA_HOME%\bin

????--开始-->运行-->cmd-->java验证是否配置成功

?

?五、第一个JAVA程序

??一个java文件只能定义一个public类,并且public修饰的类的类名要与文件名相同

??vi MyFirstJava.java

?

??public class MyFirstJava{

????public static void main(String[] args){

??????String name="tangliang";

??????int age=30;

??????System.out.println("my name is:"+name);

??????System.out.println("my age is:"+age);

????}

??}

??写好后在命令行cd到文件所在目录,然后打 javac MyFirstJava.java编译文件

??编译成功后当前文件夹中会出现一个MyFirstJava.class文件

??运行:java MyFirstJava

??结果:

??????my name is:tangliang

??????my age is:30

??要学会编译出错后查找错误!

??在文件中在定义一个class Animal{}

??保存编译后文件中就会多一个Animal.class文件,也就是说,文件中有多少类,那么就有多少class文件

???注:

???1、文件名必须和public修饰的类名一致,以.java作为文件后缀。

???2、一个.java文件中可以有多个class,但是只有一个public修饰的类。

???3、.java文件编译以后,一个class对应一个.class文件。

???4、main函数是我们整个程序的执行入口所以必须是静态公开的。

????

??java命令执行所做的东西(要用到PATH的环境变量)

?? ?1.启动jvm?

????2、找到类的字节码(class)文件,要用到CLASSPATH的环境变量

????3、装载该字节码文件(加载类到内存中)

????4、找类的主方法,main方法,执行代码:"":里面是字符串值,System.out.println():向控制台输出,

????括号里面代表的是输出的内容,不加ln代表不换行,+:代表字符串的连接。

????

??????? 类:里面可以写方法,可以写属性,一般来说:类与类(后面会讲到不并列的情形),方法与方法之间是并列的。

??????? 刚开始写代码时要注意代码的格式问题,有利于以后代码的维护以及可观性!

?

六、包

??1、作用,java程序很庞大的话会有很多类文件,为了分类存放,那么就把相同类型的类文件放在同一个包中。

??2、语法:???

????package 包名;

????...正文;

????包名规范:公司的URL.项目的简称.项目的模块(如:com.tarena.abs.model),好处:保证包的唯一性

????编译时用javac -d 目录 XX.java

????编译好后,class文件会被自动放在自己定义的包(自动生成的文件夹)中,包会放在编译命令中指定的目录中

????执行时在包所在的当前目录下打 java 包名.类名??????? ????

?

七、创建jar文件命令

??? 把指定的包中的class文件打包成jar文件

???语法:

?????jar cvf jar文件名 要打包的文件夹

?????c:create(创建)v:visible(可视的) f:filename(文件名)

?????比如:jar cvf abc.jar ./com

?????执行完后在当前目录会生成一个abc.jar的文件,解压后就是com文件夹,里面还是class文件

?????cvf:create visible filename创建可视文件名

???如果在别的java文件中要用到此jar文件中的类,那么就要在环境变量的CLASSPATH中多配一个abc.jar

???的路径。然后在类文件中直接import这个类就可以了

???jvm查找类的顺序:

???(1)、当前路径下找类

???(2)、从rt.jar中找类(jdk提供给我们的<

1 楼 mandarin 2011-05-16   不错,对我很有帮助。。。 2 楼 youngxu 2011-05-16   支持一下!

热点排行