---恢复内容开始---java
---------android培训、java培训、java学习型技术博客、期待与您交流!---android
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------面试
1、关键字小程序
java中被赋予特殊含义的单词,通常小写jvm
一、数据类型关键字:函数
注:Stirng 是类的一种,不是基本数据类型;学习
说明:在Java中,整数默认:int 小数默认:double优化
在运算中。当低类型数据与高类型数据进行计算时,系统自动将表达式中的低类型提高到高类型this
在程序中,数据类型须要变换时,能够强制转换:spa
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
二、定义数据类型的关键字
true(真) false(假) null(空)
三、定义流程数据类型值的关键字:
判断:if else swith case default
循环:for while do while
继续循环:continue
结束循环或选择结果:break
返回:return
结束程序:System.exist(0)
四、定义访问权限的修饰符
private(私有的) protected(受保护的) public(共有的)
五、定义类、函数、变量的修饰符
abstract(抽象的) final(最终的) static(静态的) synchronized(同步的)
六、定义类与类(接口)的关键字
extends(继承) implements(实现)
七、用于定义创建实例及引用实例
new(创建实例) this(当前引用) super(父类引用) instanceof(判断对象类型)
八、异常处理
try{检查异常}catch{捕获异常}finally{最终执行}
九、用于包的关键字
pakage(建立包) import(导入包)
十、其余
native(本地)
strictfp(strict float。精确浮点)
transient(变量修饰符,用他声明一个实例变量,在对象序列化时不会被序列化)
volatile(类型修饰符,用于修饰被不一样线程访问的修改的变量)
assert(断言,能够看作是异常处理的一种高级形式,用于捕捉咱们代码章作出的架势)
注:main不是关键字,倒是被虚拟机锁识别的名称
2、标识符的规范:由26个字母大小写,数字0~9,_组成
定义合法标识符的规则:
一、数字不能够开头;
二、不可使用关键字;
包名:多字母小写:xxxxyyyyzzzz
类名:XxYyZz
变量名和函数方法名:xxxYyZz
注:常量全大写XXX_YYY_ZZZ
*%取余数
*++变量 ——变量 先进行+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
2、条件判断语句if,else,else if ,switch和循环语句while,do~while,for
一、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 }
二、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
四、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是跳出循环
3、函数的概述和格式
一、*函数也叫作方法,就是定义在类中的具备特定功能的一段独立小程序;
格式:
修饰符 返回类型 函数名(参数){
执行语句
return;
}
二、特色:
*定义函数能够将功能代码进行封装,便于对该功能进行复用
*函数只有被调用才会被执行
*void表示没有返回,结果不用谢return,可是JVM会自动加return
三、函数的重载
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 }
-
---恢复内容结束---