java笔记之java语言概述

来源:互联网 发布:seo自学网 编辑:程序博客网 时间:2024/04/29 19:56

前言

本文介绍Java人们的一些基本概念。
比如:本地Java 编译(native Java compilation)(可以把Java字节码转换为具体平台上特定于操作系统的对象码),

正文

1.编程语言

 

一组有规则的指令集合(指令可驱动计算机工作的指令)

注:指令是0,1组合

 

2.java放射机制

1)java有着一个非常突出的动态机制即Reflection。放射用在java身上指的是我们可以与运行时加载、探知和使用编译时期完全未知的classes.换句话说就是java程序可以加载一个运行时才得知名称的Class,获悉其完整构造,并生成其对象实体或者对其fields设置和唤起它的methods。

2)在java中该机制的实现是采用在jvm通过classloader使用全限定名来获得Class。

 

 

3.面向过程与面向对象的区别

 

过程,关注函数与函数之间的关系;对象,关注对象与对象之间的关系

 

4.语言的划分

 

编译型语言,将程序代码翻译成另一种语言存储起来,一次加载,从头到尾顺序执行;

解析型语言:将程序解释一句执行一句。

 

5一些.基本术语:

 

JNI(java native interface) :java与其他语言连接。其中native关键字用来标识本地方法。

nio:分布式API,可用于云计算。

lib:java开发中依赖的jar包(.class文件压缩包)

 

5.工程的简单的分包示例

 

view,用来放置界面的类及程序的启动类

action, 存放功能,大部分为接口以及在该包下建立一个Impl包,来存放对于的实现类

biz ,逻辑包,存放逻辑接口以及在该包下建立一个Impl包,来存放对于的实现类

dao,存放数据的接口以及在该包下建立一个Impl包,来存放对于的实现类

factory.,存放工厂(如果有的话)

entity,存放实体类

util 存放各种工具类和配置文件

exception:存放自定义异常。

 

6.java注释

 

// 单行注释; /*   */ 方法注释;/**  */ 类解释

 

7.环境变量

 

windows xp下配置JDK环境变量:


1.安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为D:\java\jdk1.5.0_08;

2.安装完成后,右击“我的电脑”,点击“属性”;

3.选择“高级”选项卡,点击“环境变量”;

4.在“系统变量”中,设置3项属性,JAVA_HOME,PATH,CLASSPATH(大小写无所谓),若已存在则点击“编辑”,不存在则点击“新建”;

 5.JAVA_HOME指明JDK安装路径,就是刚才安装时所选择的路径D:\java\jdk1.5.0_08,此路径下包括lib,bin,jre等文件夹(此变量最好设置,因为以后运行tomcat,eclipse等都需要依*此变量);    

       1)Path使得系统可以在任何路径下识别java命令,设为: %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin

   2) CLASSPATH为java加载类(class or lib)路径,只有类在classpath中,java命令才能识别,设为.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar (要加.表示当前路径)

  3)%JAVA_HOME%就是引用前面指定的JAVA_HOME;

 6.“开始”->;“运行”,键入“cmd”;

 7.键入命令“java -version”,“java”,“javac”几个命令,出现画面,说明环境变量配置成功;

 8.好了,打完收工。下面开始你的第一个java程序吧。


通常,我们需要设置三个环境变量:JAVA_HOME、PATH 和 CLASSPATH。

JAVA_HOME:该环境变量的值就是 Java 所在的目录,一些 Java 版的软件和一些 Java 的工具需要用到该变量,设置 PATH 和 CLASSPATH 的时候,也可以使用该变量以方便设置。

PATH:指定一个路径列表,用于搜索可执行文件的。执行一个可执行文件时,如果该文件不能在当前路径下找到,则依次寻找 PATH 中的每一个路径,直至找到。或者找完 PATH 中的路径也不能找到,则报错。Java 的编译命令 (javac),执行命令 (java) 和一些工具命令 (javadoc, jdb 等) 都在其安装路径下的 bin 目录中。因此我们应该将该路径添加到 PATH 变量中。

CLASSPATH:也指定一个路径列表,是用于搜索 Java 编译或者运行时需要用到的类。在 CLASSPATH 列表中除了可以包含路径外,还可以包含 .jar 文件。Java 查找类时会把这个 .jar 文件当作一个目录来进行查找。通常,我们需要把 JDK 安装路径下的 jre\lib\rt.jar (Linux: jre/lib/rt.jar) 包含在 CLASSPATH 中。

PATH 和 CLASSPATH 都指定路径列表,列表中的各项 (即各个路径) 之间使用分隔符分隔。在 Windows 下,分隔符是分号 (;),而在 Linux 下,分隔符是冒号 (:)。

 

设置三个环境变量:JAVA_HOME、PATH 和 CLASSPATH。

 

1.JAVA_HOME:

该环境变量的值就是 Java 所在的目录,一些 Java 版的软件和一些 Java 的工具需要用到该变量,设置 PATH 和 CLASSPATH 的时候,也可以使用该变量以方便设置。

2.PATH:

指定一个路径列表,用于搜索可执行文件的。执行一个可执行文件时,如果该文件不能在当前路径下找到,则依次寻找 PATH 中的每一个路径,直至找到。或者找完 PATH 中的路径也不能找到,则报错。Java 的编译命令 (javac),执行命令 (java) 和一些工具命令 (javadoc, jdb 等) 都在其安装路径下的 bin 目录中。因此我们应该将该路径添加到 PATH 变量中。

3.CLASSPATH:

也指定一个路径列表,是用于搜索 Java 编译或者运行时需要用到的类。在 CLASSPATH 列表中除了可以包含路径外,还可以包含 .jar 文件。Java 查找类时会把这个 .jar 文件当作一个目录来进行查找。通常,我们需要把 JDK 安装路径下的 jre\lib\rt.jar (Linux: jre/lib/rt.jar) 包含在 CLASSPATH 中。

注:PATH 和 CLASSPATH 都指定路径列表,列表中的各项 (即各个路径) 之间使用分隔符分隔。在 Windows 下,分隔符是分号 (;),而在 Linux 下,分隔符是冒号 (:)。

 

在 Windows 和 Linux 下如何设置

 

假设 JDK 在 Windows 下的安装路径是 C:\jdk\,在 Linux 下的安装路径是 /usr/local/jdk/。那么,安装后的 JDK 至少会包括如下内容:

C:\jdk (/usr/local/jdk)
|-- bin
|-- demo
|-- include
|-- jre
| |-- bin
| `-- lib
`-- lib

1. 在 Windows 下设置

 

Windows 下使用 set 命令设置环境变量,为了使每一次启动计算机都设置这些环境变量,应该在系统盘根目录下的 autoexec.bat 文件中进行设置,如:

set JAVA_HOME=C:\jdk
set PATH=%JAVA_HOME%\bin;C:\Windows;C:\Windows\Command
set CLASSPATH=%JAVA_HOME%\jre\lib\rt.jar;.

有些版本的 Windows 不能用 %变量名% 来替换环境变量的内容,那么就只好直接写 C:\jdk 而不是 %JAVA_HOME% 了。另外,C:\Windows 和 C:\Windows\Command 是 Windows 会自动加入路径的,所以可以从设置中去掉。如果在 autoexec.bat 中已经设置了 PATH,那只需要将 %JAVA_HOME%\bin 加到原来设置 PATH 的那条语句中就行了。

CLASSPATH 也可以根据需要设置或者加入其它的路径,比如你想把自己写的一些类放在 C:\java 中,就可以把 C:\java 也添加到 CLASSPATH 中去,set CLASSPATH=%JAVA_HOME%\jre\lib\rt.jar;C:\java;.。

注意:在 CLASSPATH 中包含了一个“当前目录 (.)”。包含了该目录后,就可以到任意目录下去执行需要用到该目录下某个类的 Java 程序,即使该路径并未包含在 CLASSPATH 中也可以。原因很简单:虽然没有明确的把该路径包含在 CLASSPATH 中,但 CLASSPATH 中的 “.” 在此时就代表了该路径,如:

假设在 C:\java 目录下有可运行的类 HelloJava.class,那么

C:\> set CLASSPATH=C:\jdk\jre\lib\rt.jar;. // 设置 CLASSPATH 环境变量,注意最后有一个 “.”
C:\> cd java // 转到 C:\java 目录
C:\java> java HelloJava // 运行 HelloJava
Hello, Java. // 运行结果
C:\java> _

2.在 Linux 下设置

Linux 下使用“变量名=变量值”设置变量,并使用 export 命令将其导出为环境变量。为了使每一次登录都自动设置好这些变量,你需要在 ~/.bash_profile 里或者 ~./bashrc 里进行设置,如

export JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/jre/lib/rt.jar:.

设置 PATH $JAVA_HOME 所在位置。如上句实际就是 export PATH=/usr/local/j时用的 $JAVA_HOME 是指替换变量 JAVA_HOME 的值到dk/bin:$PATH。这句中 $PATH 也是同样的作用,不过这里的 PATH 是指以前设置的 PATH 变量的值,而非本次设置 PATH 变量的值。

注意,在 CLASSPATH 中包含了一个“当前目录 (.)”。包含了该目录后,就可以到任意目录下去执行需要用到该目录下某个类的 Java 程序,即使该路径并未包含在 CLASSPATH 中也可以。原因很简单:虽然没有明确的把该路径包含在 CLASSPATH 中,但 CLASSPATH 中的 “.” 在此时就代表了该路径,例如

假设在 /home/fancy/java 目录下有可运行的类 HelloJava.class,那么

[fancy@matrix fancy]$ export CLASSPATH=/usr/local/jdk/jre/lib/rt.jar:. // 设置 CLASSPATH,注意最后的“.”
[fancy@matrix fancy]$ cd ~/java // 转到 /home/fancy/java
[fancy@matrix java]$ pwd // 显示当前目录
/home/fancy/java // 当前目录是 /home/fancy/java
[fancy@matrix java]$ java HelloJava // 运行 HelloJava
Hello, Java // 运行结果
 

注:环境变量的配置与开发工具无关;javadoc 命令,针对文档注释输出。

 

8.java的特点

 

简单,面向对象(抽象,封装,继承,动态);多线程;安全;

跨平台(利用不同的os,不同的JVM来屏蔽os区别,保证java语言(字节码)文件能在不同的os上执行。字节码文件跨平台,JVM不跨平台。)

多线程:将cpu的时间划分成n等分,然后每个任务去竞争其中的1等分时间。

 

9.命名规范

 

工程名小写,包名小写,类名为驼峰规则。

接口,通常以I开头,与类一样使用驼峰规则。

方法:首字母大写,以后的每个单词的首字母大写。

变量:与方法命名一样。

包:小写,域名倒置+项目名称+功能名

常量:全部大写。

 

10.标识符

 

标识符用来标识类名,变量名,方法名,数组名和文件名的有效序列。

构成:有字母、下划线、$和数字组成,并且第一个位置不能为数字。

java语言的标识符区分大小写,包括java关键字和保留字。

 

11.一个java文件需要包含的内容:

 

文件名与文件的公共类同名

文件内容:package  报名;//一定放在第一行。

  import 全限定明;// (包名+类名)位于class与package之间。import可以使用多次

class 类名,在一个文件中可以被多次定义,但是公共类只能一个。

属性:成员变量,在类体中与方法同一级别

方法:不允许嵌套。

 

12.java关键字

 

数据类型(emum,声明枚举类型,),流程控制,

修饰符(transient,声明不进行序列化的域;native,标识本地方法,用于声明一个方法是由与机器相关的语言实现的;

assert,声明断言;strictfp,用于声明strict-fp双精度,单精度浮点数表达式;snychroined,voliate:表明两个或多个变量必须同步发生变化),

动作(instance of ),保留字(TRUE,false,null,goto,const)

 

13.变量

 

用来指代某一类型的数据

1)变量分类:

成员变量,直接定义在类体中的变量

局部变量,定义在方法体中的变量

2)变量的生命周期

成员变量:从定义到类体结束

局部变量:从定义到方法结束

注意:如果成员变量与局部变量同名,在方法中优先使用局部变量。

 

14.数据类型

 

1)分类:简单,引用

2)简单数据类型的简单介绍


2)引用的数据类型

数组,类,在后续逇博客介绍。


总结

1.int类型的最大16进制为0X7FFFFFFF。
 


9 1