1.Dos命令
1盘符切换
D:
2.查看当前目录下的所有文件
dir
3.切换目录
cd
2.Java数据类型分为两大类
1.基本类型
数值类型
整数类型
byte占1个字节范围:-128-127
short占2个 -32768-32767
int 占3个 -2147483648-2147483647
long占8个 long num=30L 后面要加L
浮点类型
float占4个字节 float num=50.1f 后面要加F或f
double 占8个
字符类型
char 占两个
boolean类型:
占1位 只有true/false
2.引用类型
类,接口,数组
3.拓展知识
String不是关键字,它是一个类
银行业务
最好避免完全使用浮点数进行比较 float(有限 离散 舍入误差 大约 接近但不等于)
银行业务用BigDecimal 一个数学工具类
字符本质是数字 编码Unicode表 \u0061 (a)
StringBuffer 可变长 append(),多线程数据量大时使用,效率低,安全
StringBuilder 单线程数据量大时使用,效率高,不安全
3.进制转换
1bit(位)表示1位
1Byte表示一个字节 1B(字节)=8b
1024B=1KB
1024KB=1M
1024M=1G
二进制用0b(零b)开头
八进制0(零)开头
十六进制 0x(零x)开头
4.变量
命名规范
类成员变量/局部变量/方法名:驼峰命名
常量:大写字母和下划线:MAX_VALUE
类名:首字母大写+驼峰命名:GoodMan Man
实例变量调用
publicclassTest {
inti;
publicstaticvoidmain(String[] args) {
Testtest=newTest();
System.out.println(test.i);
}
}
在类中加入static修饰符就可以直接调用
publicclassTest {
staticinti;
publicstaticvoidmain(String[] args) {
System.out.println(i);
}
}
常量 final
//修饰符不区分前后顺序
staticfinaldoublePI=3.14;
//final static double PI=3.14;
publicstaticvoidmain(String[] args) {
System.out.println(PI);
}
5.运算符
位运算符 & , | , ^ , ~, >> , << (效率极高)
A=0011 1100
B=0000 1101
A&B(A与B)=0000 1100 同1为1
A|B(A或B)=0011 1101 有1为1
A^B(异或运算)=0011 0001 相同为0不同为1
~B(取反) = 1111 0010
左移相当于 *2
右移相当于 /2
2<<3 (2左移3位) =16
0000 0010 2
0001 0000 16
很多运算用工具类Math
Math.pow( , )幂运算
Math.random()生成随机数
6.注释
javadoc命令用来生成自己API文档的
/**
* @author 作者名
* @version 版本号
* @since 指明需要最早使用的jdk版本
* @param 参数名
*
*/
在网上可以查找API
7.选择结构
switch(expression){
casevalue:
语句
break;
default:
语句
}
//continue
8.可变参数
JDK1.5开始支持
在方法声明中,在指定参数类型后加一个省略号(…)三个点
一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。
publicclassDemo {
publicstaticvoidmain(String[] args) {
Demodemo=newDemo();
demo.test(1,5,9,5);
}
publicvoidtest(int... i){
for (inti1 : i) {
System.out.println(i1);
}
}
}
9.递归
递归会调用大量方法,占用内存,尽量不用。
5的阶乘
publicclassDemo {
publicstaticvoidmain(String[] args) {
Demodemo=newDemo();
//5!
System.out.println(demo.f(5));
}
publicintf(inti){
if(i==1){
return1;
}else {
returni*f(i-1);
}
}
}
10.数组
动态初始化int[] num=new int[10];
静态初始化 int[] num ={1,1,2}
数组变量属于引用型,可以看做对象,在堆中
越界报错:ArrayIndexOutofBounds
num[行][列]
Arrays工具类需要导包,java.util.Arrays
Arrays.sort(num) 排序从小到大
Arrays.toString(num) 打印
fill方法 填充
equals 判断元素是否相等
binarySearch方法能对排好序的数组进行二分查找
二维数组遍历
int[][] a=newint[3][3];
for (int[] ints : a) {
System.out.print(Arrays.toString(ints)+"\t\n");
}
System.out.println("\n====================================");
for (int[] ints : a) {
for (intanInt : ints) {
System.out.print(anInt+"\t");
}
System.out.println();
}
11.继承
instanceof 可以判断两者是否为父子关系
System.out.println(object1 instanceof object2)
12.代码块
publicclassDemo {
{
System.out.println("匿名代码块");
}
static {
System.out.println("静态代码块");
}
publicDemo(){
System.out.println("构造方法");
}
publicstaticvoidmain(String[] args) {
Demodemo1=newDemo();
Demodemo2=newDemo();
}
}
/**输出结果
静态代码块
匿名代码块
构造方法
=======
匿名代码块
构造方法
**/
创建对象时,通常情况下构造方法最先执行,在本案例中,静态代码块随类一起解析,第一个被执行,下来是匿名代码块,下来是构造方法。静态的只执行一次。
13.异常
inta=1;
intb=0;
try {
System.out.println(a/b);
}catch (ArithmeticExceptione){
System.out.println("出现异常");
}finally {
System.out.println("aa");
}
java.lang.Throwable作为异常的超类,分为Error和异常Exception
catch(想捕获的异常类型)
多个catch时,最大的异常要写在最下面。
finally 一般是善后工作,无论在什么情况下都会执行,在IO流中等,资源关闭使用。
假设这个方法中处理不了这个异常,可以throw主动抛出异常
throw使用在方法体中, throws在方法上使用
14.IO流
字节流
输出:OutputStream
输入:InputStream
字符流(中文一定要用)
输出:Reader
输入:Writer
节点流
CharArrayReader,Writer,inputstream,outputstream
StringReader,Writer
pipe(管道流),PipedOutputstream
File
处理流
buffer
bufferOutputStream
bufferInputStream
bufferReader
bufferWriter
data
DataOutputStream
DataInputStream
Object流
转换流
InputStreamReader
OutputStreamWriter
Filter
四个
PrintWriter
PrintStream