---恢复内容开始---
---------android培训、java培训、java学习型技术博客、期待与您交流!---
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一、关键字
java中被赋予特殊含义的单词,一般小写
1、数据类型关键字:
注:Stirng 是类的一种,不是基本数据类型;
说明:在Java中,整数默认:int 小数默认:double
在运算中。当低类型数据与高类型数据进行计算时,系统自动将表达式中的低类型提升到高类型
在程序中,数据类型需要变换时,可以强制转换:
byte b=4;
b = b+4;//报错
b=(byte)(b+4);
思考:那一句编译失败?为什么
byte b1=3,b2=4,b; b=b1+b2; (1)byte,short,char三种数据类型在内存中运算的时候会自动类型提升为int去运算 (2)b1和b2是两个变量值,jvm无法判断里面值的大小
但是
b=3+4; 编译时没有问题的,因为编译器有常量优化机制,在编译时已经将3+4的结果赋予b
2、定义数据类型的关键字
true(真) false(假) null(空)
3、定义流程数据类型值的关键字:
判断:if else swith case default
循环:for while do while
继续循环:continue
结束循环或选择结果:break
返回:return
结束程序:System.exist(0)
4、定义访问权限的修饰符
private(私有的) protected(受保护的) public(共有的)
5、定义类、函数、变量的修饰符
abstract(抽象的) final(最终的) static(静态的) synchronized(同步的)
6、定义类与类(接口)的关键字
extends(继承) implements(实现)
7、用于定义建立实例及引用实例
new(建立实例) this(当前引用) super(父类引用) instanceof(判断对象类型)
8、异常处理
try{检查异常}catch{捕获异常}finally{最终执行}
9、用于包的关键字
pakage(创建包) import(导入包)
10、其他
native(本地)
strictfp(strict float。精确浮点)
transient(变量修饰符,用他声明一个实例变量,在对象序列化时不会被序列化)
volatile(类型修饰符,用于修饰被不同线程访问的修改的变量)
assert(断言,可以看做是异常处理的一种高级形式,用于捕捉我们代码章做出的架势)
注:main不是关键字,却是被虚拟机锁识别的名称
二、标识符的规范:由26个字母大小写,数字0~9,_组成
定义合法标识符的规则:
1、数字不可以开头;
2、不可以使用关键字;
包名:多字母小写:xxxxyyyyzzzz
类名:XxYyZz
变量名和函数方法名:xxxYyZz
注:常量全大写XXX_YYY_ZZZ
3、算术运算符号
*%取余数
*++变量 ——变量 先进行+1或-1的赋值后再执行语句
变量++ 变量-- 先执行当前语句在进行+1或-1的赋值
*+:1)作为数据的符号(正好)
2)作为加法的运算
3)作为字符的连接符
*+=:加赋值运算符
如:int x=3,x+=2;就是x=x+2;
面试题:
1 byte b = 5; 2 // b=b+2;这个错误——应该b=(byte)b+2 3 // b+=2;可以jvm会自动强转
逻辑运算符&、|、&&、||
分别是或,且,或,且的意思
前两个是所有执行完才得出结论,后两个得出结论就不执行了,以后都使用后两个
或异^:相反为真,相同为假
非!
移位运算符:
<<:一个整数项左移动n位就是乘以2的n次幂
>>:一个整数向右移动几位就是除以2的n次幂,高位时0补0,高位时1补1;
>>>:无符号由于无论高位时什么,都补0
三元运算符:(条件表达式)?表达式1:表达式2;
条件是true,结果返回是表达式1;
条件是false,结构返回表达式2;
如:
int x=5,y=10,z;
z=x>y?x:y;//返回10
二、条件判断语句if,else,else if ,switch和循环语句while,do~while,for
1、if的总实例,外加一些小知识
1 //做一个学生不同分数段得到不同评分的系统 2 BufferedReader bufr= 3 new BufferedReader(new InputStreamReader(System.in)); 4 String line = bufr.readLine(); 5 int num = Integer.parseInt(line); 6 7 if(num>80){ 8 if(num>85) 9 System.out.println("A"); 10 else 11 System.out.println("B"); 12 13 }else if(num<0||num>100) 14 { 15 System.out.println("写错数据了"); 16 } 17 else{ 18 System.out.println("不合格"); 19 }
2、switch实例
case可以理解为一个入口,当遇到时就进入。如果该case里面没有break;
那么程序会继续执行下一个case的执行语句二不会对case进行判断指定遇到break或语句结束。
String name = "张三"; String gender = "先生"; switch (gender){ case "先生": System.out.println(name + "是一位" + gender + "喜欢吃饭睡觉打dota"); break; case "女士": System.out.println(name + "是一位" + gender + "逛街购物美容"); break; default: System.out.println(name + "是一位" + gender + "打雌性激素保持美貌容颜"); }
3,while和do{}while
- while和do while的区别:
- dowhile语句会先执行循环体,再去判断条件,也就是说无论条件是否满足他都至少要执行一次循环体,先执行,再判断
- while 先判断条件,只要条件不满足就不在执行循环体了,先判断,再执行.
- while(true){}为死循环,一般配合{}里面有阻塞式,或者跳出循环的语句
4、for(;;){}循环
练习打印99乘法
1 / 打印九九乘法,使用双循环 2 for(int i=1;i<10;i++){ 3 System.out.println("\t"); 4 for(int j=1;j<=i;j++){ 5 6 System.out.print(i+"*"+j+"="+(i*j)+"\t"); 7 } 8 System.out.println(); 9 }
注意:continue和break
*这两个语句离开应用范围是没有意义的;
*continue是结束本次循环,继续下一次循环
*break是跳出循环
三、函数的概述和格式
1、*函数也叫做方法,就是定义在类中的具有特定功能的一段独立小程序;
格式:
修饰符 返回类型 函数名(参数){
执行语句
return;
}
2、特点:
*定义函数可以将功能代码进行封装,便于对该功能进行复用
*函数只有被调用才会被执行
*void表示没有返回,结果不用谢return,但是JVM会自动加return
3、函数的重载
A:在同一类中函数名相同,参数列表不同
*参数列表可以是类型不同,个数不同,顺序不同
B:特点:与返回值无关,只看参数列表
注:一般与复写做对比,复写是子类继承父类后实现接口后,在子类中复写一个与父类(接口)修饰符,返回值、函数、参数列表相同的函数
函数实例练习:
1 //打印* 函数封装练习 2 printX(3); 3 } 4 5 private static void printX(int x) { 6 for(int i=0;i<=x;i++){ 7 System.out.print("\t"); 8 for(int j=0;j<i;j++){ 9 System.out.print("*"+"\t"); 10 } 11 System.out.println(); 12 } 13 14 }
1 // 判断相等与否 2 int x=3,y=5; 3 boolean pd=boolenX(x,y); 4 } 5 6 private static boolean boolenX(int x, int y) { 7 return x==y?true:false; 8 9 }
1 // 判断大小与否 2 int x=3,y=5; 3 int bigger=boolenX(x,y); 4 } 5 6 private static int boolenX(int x, int y) { 7 if(x==y) 8 System.out.println("一样大"); 9 return x>y?x:y; 10 11 }
1 int x=3,y=5,z=6; 2 int bigger=boolenX(x,y,z); 3 System.out.print(bigger); 4 } 5 6 private static int boolenX(int x, int y, int z) { 7 int bigger=boolenX(x,y); 8 return bigger>z?bigger:z; 9 } 10 11 private static int boolenX(int x, int y) { 12 13 return x>y?x:y; 14 15 }
数值对换的几种方法
1 // 更换a、b数值的多种方法 2 // 法1 3 int temp=a; 4 a=b; 5 b=temp; 6 // 法2 7 a=a+b; 8 b=a-b; 9 a=a-b; 10 11 // 法3 12 a=a^b; 13 b=a^b; 14 a=a^b; 15 16 // 法4 17 a=b+(b=a)*0;
二进制,八进制,16进制的方法
1 public static void main(String[] args){ 2 // 进制 3 4 } 5 // 二进制 6 public static void toBin(int num){ 7 conver(num,1,1); 8 } 9 // 八进制 10 public static void toOct(int num){ 11 conver(num,7,3); 12 } 13 // 16进制 14 public static void toHex(int num){ 15 conver(num,15,4); 16 // 17 } 18 private static void conver(int num, int diwei, int yiwei) { 19 if(num==0){ 20 System.out.println("num+"+0); 21 return; 22 } 23 // 制表符 24 char[] chs={'1','2','3','4','5','6','7','8','9','a','b','c', 25 'd','e','f'}; 26 // 容器八个字符32位 27 char[] arr=new char[32]; 28 29 int pos=arr.length; 30 // 取余的反向打印 31 while(num!=0){ 32 arr[--pos]=chs[num&diwei]; 33 num>>>=yiwei; 34 } 35 // 反向打印 36 for(int x=pos;x<arr.length;x++){ 37 System.out.print(arr[x]); 38 } 39 System.out.println(); 40 }
-
---恢复内容结束---