Java基础语法
类型
- 整数:short(2字节)、int(4字节)、long(8字节)
- 字节:byte 1个字节,在需要处理字节数据时(图片处理、编码处理等),表示整数及-128~127
- 浮点数:存储小数数值,float(4个字节)double(8个字节)
- 字符:char类型存储'A','B'等字符符号。。在JDK中Java的字符采用Unicode6.2.0编码,JVM结果采用utf-16 BIgEndian,所以每个字符占两个字节,汉字和英文字符在Java中同样用双字节存储。
- 布尔值:false与true。
每个类型的存储值的范围
//byte、int、short、long取值范围
System.out.printf("%d~%d%n",Byte.MIN_VALUE,Byte.MAX_VALUE);
System.out.printf("%d~%d%n",Short.MIN_VALUE,Short.MAX_VALUE);
System.out.printf("%d~%d%n",Integer.MIN_VALUE,Integer.MAX_VALUE);
System.out.printf("%d~%d%n",Long.MIN_VALUE,Long.MAX_VALUE);
//float、double精度范围
System.out.printf("%d~%d%n",Float.MAX_EXPONENT,Float.MIN_EXPONENT);
System.out.printf("%d~%d%n",Double.MIN_EXPONENT,Double.MAX_EXPONENT);
//char可表示的Unicode范围
System.out.printf("%h~%h%n",Character.MIN_VALUE,Character.MAX_VALUE);
System.out.printf("%b~%b%n",Boolean.TRUE,Boolean.FALSE);
结果:
-128~127
-32768~32767
-2147483648~2147483647
-9223372036854775808~9223372036854775807
127~-126
-1022~1023
0~ffff
true~false
常用格式控制符号
%%:在字符串中表示%
%d:以十进制格式输出
%f:以十进制浮点数格式输出
%e,%E:以科学浮点数格式输出
%o:以八进制整数格式输出
%x,%X:以十六进制整数格式输出
%s,%S:字符串格式符号
%c,%C:以字符符号格式输出
%b,%B:输出Boolean值,true/TRUE,false/FALSE
%h,%H:使用Integer.toHexString(arg,hashCode())
%n:输出特定平台的换行符号,window底下为"\r\n" ,linux底下为"\n",MacOS底下为"\r"
指定精度:指定两位小数:%.2f;
指定字符宽度:%6.2f 19.25占5个字符所以补了一个空格在前端。
变量(variable)
1.基本规则
变量在命名时不可以使用数字开头也不可以使用一些特殊字符,变量名不能喝Java关键字同名如int、class等,也不可以与Java保留字同名例如goto。一般以小写字母开始,并在每个单字开始时第一个字母使用大写。int ageOfStudent,驼峰式命名法。
2.字面常量
在Java中写下一个值成为字面常数(literal Constant)。
int number0=0b101010101010;//二进制表示
int number01=0b1010_1010_1010;//余上一行的值等价
int number1=12;//十进制表示
int number2=0xC;//十六进制表示
int number3=014;//八进制表示
double number4=0.00123;
double number5=1.23e-3;
char size="S";
char symbol="\'";
常用的忽略符号
\\ \
\' '
\" "
\uxxxx 以十六进制数指定Unicode字符输出,
\xxx 以八进制数指定Unicode字符输出
\b 倒退一个字符
\f 换页
\n 换行
\r 光标移动至行首
运算符
算数运算符:+、-、*、/
比较运算符:>、<、>=、<=、==、!=
条件运算符:条件式?成立返回值:失败返回值
逻辑运算符:且(AND)&&、或(OR)||、反相(NOT)!
位运算:AND&、OR|、XOR^、补码~。与、或、异或,补码。(左移<<:左移指定的位数,左边被挤出去的丢弃右边补0;右移>>:右边挤出去的丢弃左边补上原来的位;
>>>右移后最左边一定是补0)
递增递减运算:i++;++i;i--;--i;(++写在前是先将变量加1再返回值,写在后是先返回值再将变量加1,--同理)
指定运算:+=;-=;*=;/=;%/;&=;|=;^=;<<=;>>=; (a+=b : a=a+b)
类型转换
double pi=3.14;
float i=3.14;//编译出错原因是在程序中写下一个浮点数时,编译程序默认使用double型
float i=3.14F;//告诉编译程序用float类型来存储
float i=(float)3.14;//强制转换
int number=2147483648;//错误整数太大
long number=2147483648;//错误原因是在程序中写下一个整型时默认是使用不超过int类型的长度
long number=2147483648L;
int a=10;
double b=a*3.14;//3.14默认是double所以a的值被提至double空间进行运算
short a=1;
short b=2;
short c=a+b;遗失精度原因操作数不大于int的整数则自动被提升值int类型进行运算
short c=(short)(a+b);
自动类型转换
1.简单数据类型之间的转换
(byte、short、char)->int->long->double.
低级到高级自动类型转换
高级到低级强制类型转换
自动类型
byte b; int i=b;long c=b;double d=b;
强制类型
short i=99;char c=(char)i; int i=99;char c=(char)i;//精度溢出
1.float->double
float f1=100.0f; Float F1=new Float(f1);double d1=F1.doubleValue();
2.double->int;
double d1=100.0;Double D1=new Double(d1); int i1=D1.intValue();
字符串转为其他类型
1.封装器在调用相关的方法
new float("32.1").doubleValue();或Double.valueOf("32.1").doubleValue();
2.静态的parseXXX;String s="1";byte b=Byte.parseByte(s);
其他类型转换为字符串
1.x.toString
2.自动转换 x+"";
3.String.valueOf(x);
流程控制
1.if...else条件式
1) . if(条件式){}
else{}
2). If(条件式一){}
else if((条件式二{}...
else{}
2.switch条件式
switch(变量或表达式){
case 整数、字符、字符串、Enumeration:
描述句;
break;
case 整数、字符、字符串、Enumeration:
描述句;
break;
...
default:
描述句;
}
3.for循环
for(初始式;执行结果不需是Boolean的重复式;重复式){
描述句;
}
4.while循环
while(条件式){
描述句;
}//前测试循环
do{
描述句;
}while(条件式);
5.break、continue
break:中断当前循环;
continue:略过之后的描述句;
break设定标签与区块可以离开整个区块如:
back:{
for(int i=0;I<10;i++){
if(i==9){
break back;
}
}
}
continue 可以调至任何一层的for循环忽略之后的描述句
back1:
for(int i=0;i<10;i++) {
back2:
for(int j=0;j<10;j++) {
if(j==9) {
continue back2;
}
}
System.out.println("text");
}