一基础:
1.数据类型:
八大基本数据类型:byte short char int long float double。注意:float声明赋值时要在后面加上" f "符号。
引用数据类型:
类(class):如,字符串String
接口(interface)
数组(array)
2.标识符,关键字:
注意:String 不是关键字,是类。
goto和const是保留关键字,一般都不使用。
3.变量:
成员变量:在方法体外,类中声明的变量。
静态变量:声明时要在成员变量类型前加上关键字"static"。
实例变量。
局部变量:在方法体内声明的变量。
当方法内的局部变量 i 和类的变量 i 重命,那么在该方法内局部变量会替换掉类的变量。
4.运算符
运算时,整数类型默认为int类型,浮点数类型默认为double类型,都应强制性转换。
"+="或"-="运算结果为原来类型,不需强制性转换。
自增:
"++a"与"a++"区别:"++a"是先增加再运算,"a++"是先运算,再增加。自减同理。
&与&&的区别:当第一个表达式为假时,&&符号则不需要执行第二个表达式,而&则无论如何都要执行。
|与||的区别:同理。
位运算符:
按位与"&":同为1,才为1。
按位或"|":同为0,则为0。
按位取反"~":二进制1改为0,0改为1。
移位操作:移位操作效率高。
<<:左移
>>:右移
>>>:无符号右移
三元运算符
5.数据类型转换:
int a = (int) 1.3;
练习:
1.写出运算结果
class Number{ public static void main(String[] args){ int a=3,b=8; int c=(a>b)?a++:b++; System.out.println("a="+a+" b="+b+" c="+c); int d=(a>b)?++a:++b; System.out.println("a="+a+" b="+b+" d="+d); int e=(a<b)?a++:b++; System.out.println("a="+a+" b="+b+" e="+e); int f=(a<b)?++a:++b; System.out.println("a="+a+" b="+b+" f="+f); } }
---------- java ----------
a=3 b=9 c=8
a=3 b=10 d=10
a=4 b=10 e=3
a=5 b=10 f=5
3.char型变量中能不能存贮一个中文汉字?为什么?
答:是能够定义成为一个中文的,因为java中以unicode编码,一个char占16个字节,
所以放一个中文是可以的。
二流程:
1.if-else流程
语法:
if(判断表达式){
为true时执行
}else{
为false时执行
}
注意:若无{},有多个if、else时,else与最近的if组成一对。
2.switch流程
语法:
switch(变量){
case 常量1:
语句1;
break;
case 常量2:
语句2;
break;
… …
case 常量N:
语句N;
break;
default:
语句;
break;
}
注意:写的时候不要忘记写break,没有break会全部执行,结果不一样。
switch()内可以是byte,short,char,int,String等,不可用浮点类型和long类型。
3.for流程
语法:
for(初始化部分; 循环条件部分; 迭代部分) {
循环体部分
}
语法:foreach 作用:遍历数组a
for(int i : a) {
}
注意:{}不可省略
4.while流程与do-while流程
while语法:
[初始化]
while(布尔值表达式) {
循环语句;
迭代语句;
}
do-while语法:
[初始化]
do{
循环语句;
迭代语句;
}while(布尔值表达式);
区别:do-while无论如何至少会执行一次,而while只有布尔值表达式为true时才会执行。
注意:do-while的while()后面要加上";"。
5.break语句
语法1:用于结束所在的一层循环块。
{
break;
}
语法2:break语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句块
label1: {
label2: {
label3: {
break label2;
}
}
}
6.continue语句
语法1:用于提前结果本次循环。
{
continue;
}
语法2:在某个循环体前加上标号,在continue后使用该标号,从而提前结果这个循环体的本次循环。
与break类似。
7.return语句
用于中止方法的。
return 后面只能根返回值且return后面的返回值类型必须跟方法的返回值类型一致。
注意:
break,continue,return共同点:后面不能再直接紧跟任何语句,否则编译错误提示:无法访问的语句。
练习:
1.从键盘分别输入年、月、日,判断这一天是当年的第几天。
1 public class Test { 2 public static void main(String[] args) { 3 Scanner scanner = new Scanner(System.in); 4 System.out.println("输入year:"); 5 int year = scanner.nextInt(); 6 System.out.println("输入month:"); 7 int month = scanner.nextInt(); 8 System.out.println("输入day:"); 9 int day = scanner.nextInt(); 10 int sumDay = 0; 11 switch (month) { 12 case 12: 13 sumDay += 30; 14 case 11: 15 sumDay += 31; 16 case 10: 17 sumDay += 30; 18 case 9: 19 sumDay += 31; 20 case 8: 21 sumDay += 31; 22 case 7: 23 sumDay += 30; 24 case 6: 25 sumDay += 31; 26 case 5: 27 sumDay += 30; 28 case 4: 29 sumDay += 31; 30 case 3: 31 if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0){ 32 sumDay += 29; 33 } else { 34 sumDay += 28; 35 } 36 case 2: 37 sumDay += 31; 38 case 1: 39 sumDay += day; 40 41 } 42 System.out.println(year + "年" + month + "月" + day + "日是今年的第" + sumDay 43 + "天"); 44 } 45 }
2.打印如下图形
//上半部分 for(int i = 0;i < 5;i++){ //输出“-” for(int j = 0;j < 4-i;j++){ System.out.print(" "); } //输出“* ” for(int k = 0;k < i+1;k++){ System.out.print("* "); } System.out.println(); } //下半部分 for(int i = 0;i < 4;i++){ for(int j = 0;j < i+1;j++){ System.out.print(" "); } for(int k = 0;k < 4-i;k++){ System.out.print("* "); } System.out.println(); }
3.输出所有的水仙花数,所谓水仙花数是指一个3位数,其各个位上数字立方和等于其本身。
例如: 153 = 1*1*1 + 3*3*3 + 5*5*5
class ShuiXianHua{ public static void main(String[] args){ for(int i = 100;i < 1000;i++){//实现所有的三位数的一个遍历 int j1 = 0; int j2 = 0; int j3 = 0; j1 = i / 100;//百位 j2 = (i - 100*j1) / 10;//十位 j3 = i - 100*j1 - 10*j2;//个位 if( i == j1*j1*j1 + j2*j2*j2 + j3*j3*j3){ System.out.println("此数值为满足条件的水仙花数:" + i); } } } }
三字符串:
1. 类代表字符串。
2.String 常用方法:
四数组:
1.一维数组
数据组的定义:数据类型[] 数组变量名。
静态初始化:在定义数组的同时就为数组元素分配空间并赋值。
如int[] array2 = {0, 1, 2};//数组间的元素使用英文逗号","分隔。
int[] array3 = new int[]{0, 1, 2};
动态初始化:数组声明且为数组元素分配空间与赋值的操作分开进行。
如int[] array4 = new int[3];
array4[0] = 0;array4[1] = 1;array4[2] = 2;
注意:
1.数组初始化时,必须指定长度。
2.数组的每个元素跟类的成员变量一样,都会被默认初始化,且基本数据类型初始值为相应的类型初始化值,而引用数据类型的初始化值为null。
2.多维数组
格式1(动态初始化):int[][] arr = new int[3][2];
格式2(动态初始化):int[][] arr = new int[3][];
每个一维数组都是默认初始化值null (注意:区别于格式1)
3.数组常用方法
如果两个指定的 int 型数组彼此相等,则返回 true。
练习:
1.冒泡排序和选择排序
public class Sort{ public void bubble(int[] array){ if(array == null || array.length == 0){ return; } System.out.println("排序前:" + Arrays.toString(array)); int len = array.length; for(int i = 0; i < len - 1; i++){//为什么是len - 1,因为最后一个不需要再去排序 for(int j = 0; j < len - 1 - i; j++){//为什么是len - 1 - i。因为每一次排序都会把最大的放到最后 if(array[j] > array[j + 1]){ array[j] = array[j] ^ array[j + 1]; array[j + 1] = array[j] ^ array[j + 1]; array[j] = array[j] ^ array[j + 1]; } } } System.out.println("冒泡排序后:" + Arrays.toString(array)); } public void select(int[] array){ if(array == null || array.length == 0){ return; } System.out.println("排序前:" + Arrays.toString(array)); int len = array.length; for(int i = 0; i < len - 1; i++){ int minIndex = i; for(int j = i + 1; j < len; j++){ if(array[minIndex] > array[j]){ minIndex = j; } } if(minIndex != i){ array[minIndex] = array[minIndex] ^ array[i]; array[i] = array[minIndex] ^ array[i]; array[minIndex] = array[minIndex] ^ array[i]; } } System.out.println("选择排序后:" + Arrays.toString(array)); } }
public class SortDemo{ public static void main(String[] args){ java基础语言总结 int[] array = {49, 38, 65, 97, 76, 13, 27, 49}; Sort sort = new Sort(); sort.bubble(array); sort.select(array); } }
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/4292.html