学习java的第四周,坚持就是胜利
java
知识扩展
标识符的使用
1.标识符:凡是自己可以起名字的地方都叫标识符。
比如:类名、变量名、方法名、接口名、包名…
2.标识符的命名规则:
由26个英文字母大小写,0-9 ,_或 $ 组成
数字不可以开头。
不可以使用关键字和保留字,但能包含关键字和保留字。
Java中严格区分大小写,长度无限制。
标识符不能包含空格。
包名:多单词组成时所有字母都小写:xxxyyyzzz
类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
1:在起名字时,为了提高阅读性,要尽量有意义,“见名知意”。
2:java采用unicode字符集,因此标识符也可以使用汉字声明,但是不建议使用。
一、在数据类型中出现的:
(位 bit 最小的单元) 1 byte=8 bits
字节 byte 机器语言的单位
在java中,字节是最小的单位。
二、常见的编码
常见的有 ASCII 编码 OEM 字符集等,此类编码的特点是:字符集都是和具体的编码方案绑定在一起
有点像通过一一映射的关系,只是通过简单的查找表的方式。
故出现了Unicode,而UTF-8则是在互联网上使用的最多的一种Unicode的实现方式。(注意:UTF-8并不是等于Unicode,只是一种实现方式)
Unicode定义了一个更为庞大且全球通用的字符集,而每个字符具体如何储存,则需要字符编码的方案。
因此在使用出,出现了乱码后,就应该从字符的编码方式正确分析。
String类型变量的使用
一、变量按照数据类型来分:
基本数据类型:
整型:byte \ short \ int \ long
浮点型:float \ double
字符型:char
布尔型:boolean
引用数据类型:
类(class) ---(String)
接口(interface)
数组(array)
二、变量的分类:按声明的位置的不同:
可分为成员变量和局部变量
三、基本数据类型之间的运算规则:
不包含boolean类型的。
自动类型提升:
结论:当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。
byte 、char 、short --> int --> long --> float --> double
特别的:当byte、char、short三种类型的变量做运算时,结果为int型
强制类型转换:
自动类型提升运算的逆运算。
1.需要使用强转符:()
2.注意点:强制类型转换,可能导致精度损失。
class Test {
public static void main(String[] args) {
double d1 = 12.9;
int i1 = (int)d1;//把double转化为int类型
System.out.println(i1);
long l1 = 123;
short s2 = (short)l1;
int i2 = 128;
byte b = (byte)i2; //int-->byte
System.out.println(b);
}
}
说明:此时的容量大小指的是,表示数的范围的大和小。比如:float容量要大于long的容量
四、变量的使用
java定义变量的格式:数据类型 变量名 = 变量值;
说明:
① 变量必须先声明,后使用
② 变量都定义在其作用域内。在作用域内,它是有效的。换句话说,出了作用域,就失效了
③ 同一个作用域内,不可以声明两个同名的变量
int x = 1;
int y=1;
if(x++== 2 & ++y==2){ //&逻辑与
x =7;
}
System.out.println(“x=”+x+",y="+y); //x=7,y=1
int x = 1,y = 1;
if(x++== 2 && ++y==2){ //&&短路与
x =7;
}
System.out.println(“x=”+x+",y="+y); x=7,y=2
关于运算符的优先级:
自己写代码中,想谁先运算,就加()即可
if-else语句
int x = 4;
int y = 1;
if (x > 2) {
if (y > 2)
System.out.println(x + y);
System.out.println("XCbG");
} else
System.out.println("x is " + x);
switch语句
1、switch(表达式)中表达式的值必须是下述几种类型之一:byte,short,
char,int,枚举 ,String;
2、 case子句中的值必须是常量,不能是变量名或不确定的表达式值;
同一个switch语句,所有case子句中的常量值互不相同;
3、 break语句用来在执行完一个case分支后使程序跳出switch语句块;如
果没有break,程序会顺序执行到switch结尾
4、 default子句是可任选的。同时,位置也是灵活的。当没有匹配的case时,执行default
if 和 switch语句的对比
if-else语句适用性更广,而switch语句效率高;
使用switch-case的,都可以改写为if-else。反之不成立。
循环语句题目:
从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入
为0时结束程序。
无限循环:while(true) , for(;;)
class PositiveNegative {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int positiveNumber = 0;//统计正数的个数
int negativeNumber = 0;//统计负数的个数
for(;;){ //while(true){
System.out.println("请输入一个整数:");
int z = scanner.nextInt();
if(z>0)
positiveNumber++;
else if(z<0)
negativeNumber++;
else
break; //重要!以结束循环
}
System.out.println("正数的个数为:"+ positiveNumber);
System.out.println("负数的个数为:"+ negativeNumber); } }
嵌套循环(多重循环)
设外层循环次数为m次,内层为n次,则内层循环体实际上需要执行m*n次。
例如:九九乘法表
外层循环即 控制行,内层循环控制列
特殊关键字的使用:break、continue
break 语句
break语句用于终止某个语句块的执行
{ ……
break;
……
}
break语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是
哪一层语句块
label1: { ……
label2: { ……
label3: { ……
break label2;
……
} } }
public class BreakTest{
public static void main(String args[]){
for(int i = 0; i<10; i++){
if(i==3)
break;
System.out.println(" i =" + i);
}
System.out.println("Game Over!");
} } //0,1,2,Game Over!
continue 语句:
continue只能使用在循环结构中;
continue语句用于跳过其所在循环语句块的一次执行,继续下一次循环;
continue语句出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一层循环。
public class ContinueTest {
public static void main(String args[]){
for (int i = 0; i < 100; i++) {
if (i%10==0)
continue;
System.out.println(i); } } }//0,1,2,3.。。。。,9,11,12.。。。
//不打印10和10的倍数的数
补充:
//return 并非专门用于结束循环的,它的功能是结束一个方法。
当一个方法执行到一个return语句时,这个方法将被结束。
//与break和continue不同的是,return直接结束整个方法,不管
这个return处于多少层循环之内。
//continue是终止本次循环,break是终止本层循环。
//break、continue之后不能有其他的语句,因为程序永远不会执行其后的语句
本周过后,学习java已过一个月。进度当然要比文章写的内容要快很多,写文章也还是为了方便日后复习。同时也要准备时间来实习找工作,希望自己能保持这份学习java的热情。加油!!
请多多支持,你们的点赞~ 评论
是作者更新的动力!
人生苦短,我用python~