1、jdk环境变量配置
for win:
假设jdk安装于D:\Java\jdk1.8.0_25下
JAVA_HOME D:\Java\jdk1.8.0_25
Path %JAVA_HOME%\BIN
CLASSPATH .;D:\Java\jdk1.8.0_25\lib\tools.jar;D:\Java\jdk1.8.0_25\lib\dt.jar
for linux:
默认情况下
假设jdk安装于abc用户下,/home/abc/java/jdk1.8.0/
通过home下的.bash_profile配置
PATH=.:$PATH:$HOME/bin:/home/abc/java/jdk1.8.0/bin
导出PATH环境变量
export PATH
部分Linux系统,比如我目前用的Fedora自带的是OpenJDK,故自己安装了龟壳的JDK,可以利用alternatives将龟壳JDK设为默认JDK
具体方法为(来源自网上):
[root@localhost ~]# /usr/sbin/alternatives --install /usr/bin/java java /usr/java/bin/java 3
其中最后的3是优先度,越小的越优先
[root@localhost ~]# /usr/sbin/alternatives --config java
这里选择龟壳的java作为默认的java
可以通过alternatives --display java来查看配置
开发中可以只设置当前用户的环境变量:
#vi /etc/profile
在最后加上
# Java config export JAVA_HOME=/usr/java export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
source或重启即可
除了分隔符一个是逗号一个是冒号外,基本和windows一样
其中,环境变量设置win平台以;作为分隔符,linux平台以:作为分隔符
最后,可以通过
java -version javac -version javap -version
来检查环境变量是否设置成功
2、java程序的简单编译和运行
编译:javac -d 目录 文件名
运行:java -cp 目录 类名
3、java源文件的命名规则:
a). 文件名必须以.java为后缀
b). 如果源文件中定义了public修饰的类,主文件名必须与类名相同。
(一个Java源文件,可以包含多个类定义,但一个Java源文件最多只能包含一个public修饰的类。)
4、java代码注释
单行注释 //
多行注释/* */
文档注释/** */
@author 作者
@version 版本
@param 参数
@return 返回值
@see 参见
@exception 抛出异常的类型
@throw 抛出异常的类型
javadoc -d 路径 java源文件或包
生成文档注释可以支持html代码,以确保美观
5、java的数据类型——java是强类型语言
a)整型:byte、short、int、long
(1). 当我们直接给出一个整数值时,它默认是int型,系统绝不会把它当成long处理。
(2). 当我们直接给出一个在指定取值范围内的整数时,系统也可把它当成byte、short使用。
(3). 如果你系统把一个整数当成long使用,应该在整数后添加l或L。
10进制 默认
16进制 Ox或0X开头 0~9、a~f
8进制 O开头 0~7
2进制(jdk1.7+) 0b或0B开头 0~1
b)浮点型:float、double
java中默认浮点型是double,除非在结尾加上f,如1.23f
float :4个字节,32位。大概只能装7~8位有效数字
double:8个字符,64位。
浮点型有3个特殊值:
正无穷大 Infinty 正数除以0,得到无穷大。
● 所有正无穷大都相等。
负无穷大 -Infinity 负数除以0,得到无穷大。
● 所有负无穷大都相等。
非数 NaN :0 除以0, 对负数开方等。
非数与任何数都不相等,包括它自己!
c)字符型:char
Unicode字符集,char占2个字节,16位, 65536种状态。
字符型的值,应该用单引号引起来(双引号引起来的是字符串)
字符型有3种形式:单引号的字符、转移字符、Unicode编码(\uXXXX)
d)布尔型:boolean:true、false
类型转换:
byte → short → int → long → float → double
↗
char (0~65535)
6、java运算符
a)算数运算符
b)赋值运算符
c)位运算符
d)逻辑运算符
&&与&的区别何在?
对于“求与”来说,当第一个操作数已经是false时、结果肯定是false,第二个操作数根本不会影响结果。
&&,根本不会去计算第二个操作数。
&, 它依然会去计算第二个操作数。
||与|的区别何在?
对于“求或”来说,当第一个操作数已经是true时、结果肯定是true,第二个操作数根本不会影响结果。
||,根本不会去计算第二个操作数。
|, 它依然会去计算第二个操作数。
e)三目运算符
7、java流程控制
a)顺序
b)分支
if()else if(){}else{}
switch(){case xxx:……;break;……default:XXXX;}
(从1.7+,switch控制表达式允许String)
c)循环
for / while
(break、continue)
8、java数组
定义数组时要么指定数组的长度(动态初始化),要么指定数组的初始值(静态初始化)
动态初始化:int[] arr=new int[5];
静态初始化:int[] arr2={1,2,3,4,5};
int[] arr2=new int[]{1,2,3,4,5};
数组遍历:for(int a : arr){System.out.println(a);}
数组类型的变量,只是一个引用变量。定义数组变量,仅仅只是定义了一个指针。
常见的两个数组异常:
空指针异常(NullPointException)
数组索引越界异常(ArrayIndexOutOfBoundsException)
Java.util.Arrays类的常用方法:
binarySearch() 使用二分搜索法来搜索指定的数组
copyOf() 复制指定数组,如副本长度不同,截取或用 初始值(0、null、false) 填充,以使副本具有指定的长度
copyOfRange() 将指定数组的指定范围复制到一个新数组
equals() 比较数组
fill() 用指定的值填充数组
sort() 数组排序
toString() 返回指定数组内容的字符串表示形式