一:java的基本语法
1.代码都是存放在class里面的
2.严格区分大小写(num NUM)是两个不同的变量
3.格式自由.
4.单行注释与多行注释的和文档注释
5.标识符:
全部使用英文字母,骆驼式命名:从第二个单词开始,每个单词的首字母都要大写,其它的小写
(标识符不能为关键字,不能以数字开头)
二:java中的变量
1.有八个原声数据类型和引用数据类型.
2.类型转换:
byte、short、char类型在运行过程中都会提升为int 类型(这样的方式叫自动类型)我们可以将一个int类型强制转换成byte、short、char类型 (需要强制类型转换!显示类型转换丢失精度.
System.out.println('a'+1); 因为 1是int类型的,所以会升级为int 类型.
System.out.println(""+'a'+1);(任何数字和字符串相并且都自动转换成字符串).
3.变量的生命周期:
在方法内定义的变量,当方法被调用的时候,变量被定义,当方法接收的时候。变量也会随着方法释放掉变量的作用域内是不可以重复定义,超出变量的作用域,变量将不能访问.
三:java中的函数
1.定义:函数,又称为方法,能够完成某特定代码的代码块,其个名字,方便于方法的调用函数的作用: 就是可以重复的去利用某一段代码
2.函数必须有的: 函数名 返回值 返回值类型 (形式参数看需求而定)
3.形参:方法定义的形参相当于在方法中定义了一个局部变量,当这个方法被调用的时候,也就是对其方法里面的参数初始化啦!初始值为传递进来的参数
4.返回值类型:可以为任意一个类型,有一种特殊:当方法没有返回值的时候,我们要把返回值类型定义为(void)
5.return :在方法中可以使用return 返回一个值,(返回的值必须是与返回值类型一致)
6.方法的重载:
多个函数具有相同的名字,参数的个数或者类型不同都可以. 返回值类型不能做衡量方法的重载
四:java中的运算符
1.算术运算符 % 取模,也叫做取余
++自增1,--自减1
++x 与x++的区别: 本质上是没有区别的,x++是先参与运算再自加 ,而++x先自加一次才参与运算
在取模运算中,模数的符号会被忽略,被模数符号不能被忽略
2.赋值运算符 = 是赋值的意思
+= ,-=,*=,\=,%=
3.比较运算符号: == 是相互比较的意思
instanceof:判断该对象是否是属于指定的类型
4.逻辑运算符
&和&&的区别:
1. &&如果左边为假,结果注定为假,右边不参与运算
2.&如果左边为假,结构注定为假,但是右边会参与运算
|和||的区别:
1.如果左边为真,结果注定为真,右边不参与运算
2.如果左边为真,结果注定为真,右边参与运算
5.位运算符
&(与):真真得真,真假得假,假假得假
|(或):真假为真,真真为真,假假为假
^(异或):任何一个数与一个指定的数异或两次,其结果等于本身,(第一个数异或第二个数 其结果再异或第二个.其结果等于它本身)(不同为1,相同为0)
移位运算符:
<<左移,砍掉高位,低位补0 一定要把它更改成32位。(左移N位相当于乘以2的N次方)
>>右移,砍掉低位,高位要看最高位的符号。符号位为1,就补1,符号位为0就补0(右移N位,相当于除以2的N次方)
6.switch
switch中的参数是必须是int类型的,但是byte,short,char都是隐式的自动类型提升啦~
break :结束循环
continue:提前结束本次循环,进入到下一次循环
总结:后期学习不认真!估计时间不安排好!!。。注意。
1 小算法复习: 2 /* 3 不用第三方变量交换两个数的值 4 5 异或:第一个数异或第二个数,之后再把结果异或第二个数。其结果等于它本身! 6 7 1.<<最高位砍掉,最低位补零 8 (左移多少位,其实就是*2的N次方) 9 2.>>最低位砍掉.如果最高位是1,前面就是补1,否则补0 10 //(又移多少位,就是/2的N次方) 11 */ 12 13 class Demo 14 { 15 public static void main(String[] args) 16 { 17 int a = 3; 18 int b = 5; 19 20 a = a ^ b; 21 b = a ^ b; 22 a = a ^ b ; 23 System.out.println("a == "+a); 24 System.out.println("b =="+b); 25 26 } 27 } 28 /*某个培训中心要为新到的学员安排房间,假设共有x个学员, 29 每个房间可以住6人,让你用一个公式来计算他们要住的房间数 30 */ 31 32 33 class Demo 34 { 35 public static void main(String[] args) 36 { 37 int num = 48; 38 int homeNuber = getHomeNumber(num); 39 System.out.println("学生的个数为:"+homeNuber); 40 } 41 static int getHomeNumber(int num) //形式参数的初始化其实就是传递进来的参数帮他初始化啦~ 42 { 43 return (num+5)/6; //给一个最大的限度! 44 } 45 } 46 47 /* 48 利用无限循环实现0 - 9 之间的数之间的重复循环 49 */ 50 51 class Demo 52 { 53 public static void main(String[] args) 54 { 55 int x = 0; 56 while(true) 57 { 58 59 x = (x+1)%10; 60 System.out.println(x); 61 } 62 } 63 } 64 65 /* 66 利用小技巧把10进制转换成2进制代码! 67 */ 68 import java.io.*; 69 class Demo 70 { 71 public static void main(String[] args) throws Exception 72 { 73 //读取键盘 74 BufferedReader br = 75 new BufferedReader(new InputStreamReader(System.in)); 76 System.out.println("本程序可以帮助您把十进制代码转换成二进制代码:"); 77 String line = br.readLine(); 78 int num = Integer.parseInt(line); 79 StringBuffer sb = new StringBuffer(); 80 while(num>0) 81 { 82 int temp = num % 2; //获取到除以2的余数! 83 sb.append(temp); 84 num = num / 2; 85 } 86 sb.reverse(); 87 System.out.println(sb); 88 } 89 } 90 91 92 /* 93 十进制转换成十六进制之方法一。 94 */ 95 import java.io.*; 96 class Demo5 97 { 98 public static void main(String[] args) throws Exception 99 { 100 BufferedReader br = 101 new BufferedReader(new InputStreamReader(System.in)); 102 103 System.out.println("本程序可以通过十进制转换成十六进制:"); 104 105 String line = br.readLine(); 106 int num = Integer.parseInt(line); 107 108 StringBuffer sb = new StringBuffer(); 109 while(num>0) 110 { 111 int temp = num % 16; 112 if(temp>9) 113 { 114 sb.append((char)(temp-10+'A')); 115 }else 116 { 117 sb.append(temp); 118 } 119 num = num / 16; 120 } 121 sb.reverse(); 122 System.out.println(sb); 123 } 124 } 125 126 127 /* 128 用移位的方法来求一个数 129 130 十进制转换成十六进制 131 */ 132 import java.io.*; 133 class Demo 134 { 135 public static void main(String[] args) throws Exception 136 { 137 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 138 System.out.println("本程序可以帮助您从十进制转换到十六进制:"); 139 String line = br.readLine(); 140 int num = Integer.parseInt(line); 141 Ten2Hex(num); 142 } 143 144 static void Ten2Hex(int num) 145 { 146 StringBuffer sb = new StringBuffer(); 147 int count = 0x00000000f; 148 for(int i = 0;i<8;i++) 149 { 150 int temp = num & count; 151 if(temp>9) 152 { 153 sb.append((char)((temp-10)+'A')); //类型要注意 154 } 155 else 156 { 157 sb.append(temp); 158 } 159 num = num >>4; 160 161 } 162 sb.reverse(); 163 System.out.println("结果为:"+sb); 164 } 165 } 166 167 /* 168 打印金字塔程序! 169 求算法的时候要注意: 170 找到求第一个的规律. 171 然后循环就可以。 172 */ 173 174 175 class Demo 176 { 177 public static void main(String[] args) 178 { 179 int n = 4; 180 for(int i = 0;i<n;i++) 181 { 182 for(int j = 0;j<n-i;j++) 183 { 184 System.out.print(" "); 185 } 186 for(int k =0;k<i*2-1;k++) 187 { 188 System.out.print("*"); 189 } 190 System.out.println(); 191 } 192 } 193 } 194 195 196 总结: 197 其实switch的参数必须是int类型的,为什么byte char short参数可以传递进来呢? 198 因为它的类型自动提升为int类型啦。也就是隐式的进行了强制转换/所以是可以的.