- 概述
- Java特性:简单性、面向对象、支持网络连接、健壮性、安全性、体系结构中立(生成字节码)、可移植性、解释性、高性能、多线程、动态性。
- JDK、JRE、SE、EE、ME
- IDE:Eclipse、NetBeans、Intellij IDEA、JDeveloper
- 强类型语言。
- 环境搭建
- 常用命令:
- 查看环境变量:set path 或echo %PATH%;
- 查看版本号:javac -version
- 查看详细输出:-verbose
- 创建目录:mkdir src
- 解压文件:jar xvf src.jar
- 压缩文件:jar cvf src.jar a.class b.class
- 环境变量设置:
- 设置可执行文件路径:set PATH=C:\Program Files\Java\jdk1.8.0_60\bin;
- 设置CLASSPATH=.;
- 编译:
- 指定编译完成的classes文件存放位置:javac -d bin src/Base.java
- 指定编译依赖的java文件位置:javac -sourcepath src2 src/Base.java
- 编译时,先搜索soucepath的类文件,再搜索classpath的源文件
- UnsupportedClassVersionError:JDK高版本上编译,低版本上执行会报错。
- 如果java源程序编码与当前默认ANSI编码不符,则编译时,指明源程序编码:javac -encoding utf-8 Hello.java
- 执行:指定依赖的class文件位置:java -cp bin Base,cp即classpath
- 基本语法
- 注释
- javadoc -d docdir com/wy/base/GrammerTest.java
- 8种基本类型:
- java7开始允许数字下方加下划线:int i=100_100_100;
- 浮点数不适于不允许误差的计算:如2.0-1.1会得出0.89999999,应该使用BigDemical类,并且要用String构造器:System.out.println(new BigDecimal("2.0").subtract(new BigDecimal("1.1")));
- 变量
- 变量:变量名可以用字母、数字或$,包括各国的字母。长度无限制。判断是否是java中的字母:使用Character.isJavaIdentifierStart('a'),和Character.isJavaIdentifierPart('a')
- 常量:利用final关键字指定常量,一般大写,只能赋值1次。类常量:static final
- 运算符
- 被0除:整数产生异常,浮点数为NaN或无穷大。
- strictfp关键字,使用严格的浮点计算。
- 位运算符
- Math常用方法
- 类型转换
- 枚举类型
- String字符串
- 子串
- 拼接
- 不可变字符串和可变字符串拼接效率比较:StringBuilder(非线程安全)、StringBuffer、String
- charAt返回代码单元,尽量少用。
- 常用方法:comparetTo、endsWith、startsWith、equalsIgnoreCase、indexOf、lastIndexOf、length、replace、subString、toLowerCase、trim
- 输入输出
- 控制台输入:Scanner in=new Scanner(System.in);
- 输入密码:Cosole类
- 文件输入:Scanner in = new Scanner(Paths.get(url));文件名中如果有反斜杠,需要多加一个反斜杠。
- 文件输出:PrintWriter pw = new PrintWriter(url);
- 流程控制
- 大数值
- 数组
- 对象和类
- 字符集和字符编码
- 字符集Charset:是一个系统支持的所有字符的集合。
- 字符编码Character Encoding:一套法则,对字符集进行编码,规定每个字符用一个字节还是多个字节存储,用哪些字节进行存储。(有些字符集和字符编码叫法是一样的)
- 内码:指系统内部的编码方式,英文系统为ASCII,繁体中文为BIG5,简体中文为国标码GB18030。
- 常见字符集和字符编码,除Unicode外,其他字符集的字符编码就是字符集名称。
字符集 |
内码 |
说明 |
ASCII |
ASCII |
单字节 |
GB2312、GB1380、GBK、BIG5 |
ANSI |
1个或2字节 |
Unicode |
Unicode |
单个字节字符编码UTF-8、UTF-16 |
- 产生乱码原因:如UTF-8保存字符"一“,后台存储的是对应的编码“E4 B8 80",如果将文件另存为GB2312保存,"E4 B8 80"则对应GB2312字符集的涓?。
- 判断字符是什么字符集:通过把未知编码字符串,用猜想的编码再解码,观察字符串是不是正确还原了。
- 如果文件所用的字符编码不同,则使用s.getBytes().length获取的值也不一样。
- 编程习惯
- 变量声明尽量靠近第一次使用的地方。
- 开发工具
- Ecipse
- 字体设置:
- 疑问
- 数字签名类
|