Java初学者之Java基本语法,
Java初学者之Java基本语法,
Java基本语法总结
一.关键字
1、被Java语言赋予了特殊含义,用于专门用途的字符串(也就是单词)例如class等等。
2、关键字中所有字母都为小写
二、标识符
凡是可以自己命名的地方,都叫标识符。例如:类名、方法名、变量名、接口名……
三、标识符命名的规则:(要求严格遵守,否则会报编译性的错误)
1、由26个英文字母大小写,0-9,_或$组成
2、 数字不可以开头。
3、不可以使用关键字和保留字,但能包含关键字和保留字(现有Java版本未使用,但以后版本会作为关键字使用)
4、Java中严格区分大小写,长度无限制。
5、标识符不能包含空格。
四、Java中的名称命名规范:(如果不遵守,也不会报错)
1、包名:多单词组成时所有字母小写:xxxyyyzzz
2、类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
3、变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
4、常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
5、在起名时,要尽量有意义。
五、变量
1、Java中变量定义的格式:数据类型 变量名 = 初始化值
2、变量先定义后使用
3、变量的分类:
基本数据类型:
数值型:
整数类型:byte,short,int,long
浮点型:float,double
字符型:char
布尔型:boolean
引用数据类型:
类:class(字符串)
接口:interface
数组:[]
4、基本数据类型总结
/*基本数据类型*/
class Love
{
public static void main(String[] args)
{
//1.整型:byte(-128~+127) short int(默认类型) long
byte b1=13;
short s1=520;
int i1=14;
System.out.println(b1);
System.out.println(s1);
System.out.println(i1);
//定义long型变量,值的末尾加“L”或“l”
long I1=5201314L;
System.out.println(I1);
//2.浮点型(带小数点的数值):float double(默认类型)
double d1=13.14;
System.out.println(d1);
//声明flaot类型的浮点型数据,末尾要加“F”或“f”
float f1=13.14F;
System.out.println(f1);
//3.字符型:char 只能表示一个字符(英文,中文,标点符号)
char c1='a';
System.out.println(c1);
//使用String来输出多个字符
String str="ab";
System.out.println(str);
//可以表示转义字符
char c2='\n';
System.out.println("abc"+c2+"def");
//了解一下
char c3='\u1234';
System.out.println(c3);
//4.布尔类型:boolean 只能够取值为true或false。不能取值null。
boolean t1=true;
if(t1){
System.out.println("我爱\"Java\"");
}else{
System.out.println("你在说谎");
}
}
}
六、类型转换(不考虑boolean)
class Teep
{
public static void main(String[] args)
{
//1.自动类型转换:当容量小的数据类型与容量大的数据类型做运算时,容量小的会自动转换为容量大的数据类型:
// char,byte,short==>int==>long==>float==>double
int i1=12;
short s1=2;
int i2=i1+s1;
float f1=12.3F;
float f2=f1+i2;
long I=12L;
float f3=I;
System.out.println(i2);
System.out.println(f2);
//char c1='a';//97
char c1='A';//65
int i3=c1+1;
System.out.println(i3);
//需要注意的:当char\byte\short之间做运算时,默认的结果为int类型
short ss1=12;
byte bb1=1;
char cc1='a';
int ii1=ss1+bb1;
int ii2=cc1+bb1;
System.out.println(ii1);
System.out.println(ii2);
//2.强制类型转换:容量大转换为容量小的,要使用强制类型转换符:()
//强制类型转换的问题:导致精度的损失
long I1=12345L;
int m1=(int)I1;
System.out.println(m1);
byte by1=(byte)m1;
System.out.println(by1);
//平时常用的字符串,也是一种数据类型:String
String nation="我喜欢Java";
System.out.println(nation);
//字符串与基本数据类型之间的运算:只能是连接运算:+。得到的结果仍为一个字符串
String str="abc";
String str1=str+m1;//abc12345
System.out.println(str1);
//在字符串前面的其他数据类型做加法运算,在字符串后面的其他数据类型做连接运算
String st1="hello";
int myInt1=12;
char ch1='a';//97
System.out.println(st1+myInt1+ch1);//hello12a
System.out.println(myInt1+ch1+st1);//109hello(int类型)
System.out.println(ch1+st1+myInt1);//ahello12
//"数据"等同于数据+""
String st2="12";
String str2=12+"";
System.out.println(st2);
System.out.println(str2);
}
}
七、进制
二进制:由0,1组成,满2进1,以0b或0B开头。
十进制:由0-9组成,满10进1,。
八进制:由0-7组成,满8进1.以数字0开头表示。
十六进制:0-9及A-F,满16进1.以0x或0X开头表示。A-F不区分大小写。
原码、反码、补码
正数、负数都以补码的二进制形式储存
1、对于正数:原码、反码、补码三码合一
2、对于负数:
原码:负数符号位为1
反码:原码各个位除符号位外取反
补码:反码+1
八、运算符
1、算数运算符:+ - + - * / % ++ – +
class Test1
{
public static void main(String[] args)
{
//除:/
int i=12;
int j=i/5;
double d=i/5;
double d1=i/5.0;
double d2=(double)i/5;
System.out.println(j);//2
System.out.println(d);//2.0
System.out.println(d1);//2.4
System.out.println(d2);//2.4
//取模:% :取余数.结果的符号取决于被模数(被除数)
int i1=12%5;
int i2=-12%5;
int i3=12%(-5);
int i4=-12%(-5);
System.out.println(i1);//2
System.out.println(i2);//-2
System.out.println(i3);//2
System.out.println(i4);//-2
//前++:先自加1,后做运算
//后++:先做运算,后自加1
int myInt1=10;
int myInt2=++myInt1;//前++
System.out.println(myInt1);//11
System.out.println(myInt2);//11
int myInt3=10;
int myInt4=myInt3++;//后++
System.out.println(myInt3); //11
System.out.println(myInt4);//10
//前--:先自减1,后做运算
//后--:先做运算,后自减1
int myInt5=10;
int myInt6=--myInt5;//前--
System.out.println(myInt5);//9
System.out.println(myInt6);//9
int myInt7=10;
int myInt8=myInt7--;//后--
System.out.println(myInt7); //9
System.out.println(myInt8);//10
}
}
2、赋值运算符:+= -= *= %= /=
class Test2
{
public static void main(String[] args)
{
int i1=10;
i1 +=3;//i1=i1+3;
System.out.println(i1);//13
short s=10;
//s=s+1;//编译不通过
s=(short)(s+1);//不建议这么做
s +=1;//既可以实现运算,又不会更改s的数据类型
System.out.println(s);//11
int i2=12;
i2 %=5;//i2=i2%5;
System.out.println(i2);//2
boolean b1=false;
//区分==和=的区别。==的含义为==的两端是否相等,而=的含义为=的右端赋值给=的左端
if(b1=true)//=的结果为爱,==的结果为恨
System.out.println("爱");
else
System.out.println("恨");
int i=1;
i *=0.1;
System.out.println(i);//0
}
}
3、逻辑运算符:&逻辑与 |逻辑或 !逻辑非 && 短路与 ||短路或 ^逻辑异或
class Test3
{
public static void main(String[] args)
{
boolean a=true;
boolean b=false;
System.out.println(a & b);//false
System.out.println(a && b);//false
System.out.println(a | b);//true
System.out.println(a || b);//true
System.out.println(a & !b);//true
System.out.println(a^b);//true
//& 与 &&的区别:&:不管&的左端是true还是false,&的右端都会进行计算
// &&:当&&左端为false时,&&的右端不再进行计算
//以后使用时,建议使用&&
int i1=10;
if(b & (i1++) > 0){
System.out.println("今天天气很好");
}
else{
System.out.println("没有下雨");//结果
}
System.out.println(i1);//11
int i2=10;
if(b && (i2++) > 0){
System.out.println("今天天气很好");
}
else{
System.out.println("没有下雨");//结果
}
System.out.println(i2);//10
//|与||的区别:|:当|的左端为true还是false时,|的右端都会运算
// ||:当||的左端为true时,||的右端不再进行运算
//以后使用时,建议使用||
int i3=10;
if(a | (i3++) > 0){
System.out.println("今天天气很好");//结果
}
else{
System.out.println("没有下雨");
}
System.out.println(i3);//11
int i4=10;
if(a || (i4++) > 0){
System.out.println("今天天气很好");//结果
}
else{
System.out.println("没有下雨");
}
System.out.println(i4);//10
}
}
4、位运算符:<< >> >>> | & ~ ^
class TestBit
{
public static void main(String[] args)
{
//左移<<:移动之后右端的空位拿最高位补(正数拿0补,负数拿1补)
int i1=31;
System.out.println(i1<<3);//248=31*2*2*2
System.out.println(i1<<28);//-268435456
//右移>>:移动之后左端的空位拿最高位补(正数拿0补,负数拿1补)
System.out.println(i1>>2);//7
System.out.println(i1>>>2);//7
//无符号位的右移>>>:移动之后左端的空位拿最高位补(不管正数、负数都拿0补)
int i2=-31;
System.out.println(i2>>2);//-8
System.out.println(i2>>>2);//1073741816
System.out.println(12 & 5);//4
System.out.println(12 | 5);//13
System.out.println(12 ^ 5);//9
System.out.println(~12);//-13
}
}
class TestExer1
{
public static void main(String[] args)
{
int m=12;
int n=5;
System.out.println("m: "+m+" n: "+n);
//方法一:提供一个临时变量
int temp=m;
m=n;
n=temp;
System.out.println("m: "+m+" n: "+n);
//方法二:当m和n较大时,有可能出现精度损失
m=m+n;//m=12+5;
n=m-n;//n=17-5;
m=m-n;//m=17-12;
System.out.println("m: "+m+" n: "+n);
//方法三:优点:没有上面两种方法的缺点。缺点:难!
m=m^n;
n=m^n;//(m^n)^n==m;
m=m^n;//(m^n)^m==n;
System.out.println("m: "+m+" n: "+n);
//60 手动的方式,从控制台输出60的十六进制
int i=60;
//自动调用Integer类现成的方法
//操作
String hex = Integer.toHexString(i);
System.out.println(hex);//3c
String binary = Integer.toBinaryString(i));
System.out.println(binary);//111100
char c ='a';
char c1=(char)(c+2);
System.out.println(c1);//c
int j=i & 15;//获取到i的最低4位对应的值
String k1=(j<=9)?j+"":(char)(j-10+'a')+"";
System.out.println(k1);//c
i=i>>4;
int z=i & 15;
String k2=(z<=9)?z+"":(char)(z-10+'a')+"";
System.out.println(k2+k1);//3c
}
}
5、三元运算符:(条件表达式?表达式1:表达式2;)
*要求:表达式1与表达式2为同种数据类型
既然是运算符,就一定会有运算的结果,结果的数据类型与表达式1,2的类型一致。
三元运算符在一定程度上可以与if-else互换
class TestSanYuan
{
public static void main(String[] args)
{
int i=10;
int j=20;
int max=(i>j)?i:j;
String str =(i>j)? "i大":(i == j)?"相等":"j大";
System.out.println(max);//20
System.out.println(str);//j大
//互换
if(i>=j){
System.out.println("较小值为:"+i);
}else{
System.out.println("较大值为: "+j);//较大值为:20
}
//如何使用三元运算符,输出三个数中的较大值
int m=12;
int n=18;
int t=27;
int max1=(m>n)?m:n;
int max2=(max1>t)?max1:t;
System.out.println(max2);//27
}
}
相关文章
- 暂无相关文章
用户点评