20145219 《Java程序设计》第02周学习总结
教材学习内容总结
类型:基本类型、类类型(参考类型)
-
基本类型:
整数:
short
占2字节,int
占4字节,long
占8字节字节:
byte
占1字节,表示-128~127的整数浮点数:存储小数数值,
float
占4字节,double
占8字节,字节多的精确度大字符:
char
用来存储'A'、'b'、'林'等字符符号,占2字节布尔:
boolean
只有两个值true和false,无法与其他类型做运算 -
通过API得知各种类型可存储数值的范围
public class Range {
public static void main(String[] args) {
//byte、short、int、long范围
System.out.printf("%d~%d%n",Byte.MIN_VALUE,Byte.MAX_VALUE);
System.out.printf("%d~%d%n",Short.MIN_VALUE,Short.MAX_VALUE);
System.out.printf("%d~%d%n",Integer.MIN_VALUE,Integer.MAX_VALUE);
System.out.printf("%d~%d%n",Long.MIN_VALUE,Long.MAX_VALUE);
//float、double精度范围
System.out.printf("%d~%d%n",Float.MIN_EXPONENT,Float.MAX_EXPONENT);
System.out.printf("%d~%d%n",Double.MIN_EXPONENT,Double.MAX_EXPONENT);
//char可表示的Unicode范围
System.out.printf("%h~%h%n",Character.MIN_VALUE,Character.MAX_VALUE);
//boolean的两个值
System.out.printf("%b~%b%n",Boolean.TRUE,Boolean.FALSE);
}}
注释:单行注释(“//”之后的文字)、多行注释(“/”与“/”之间的文字)
使用
System.out.println()
,在标准输出中显示文字后换行。而使用System.out.print()
则输出文字后不换行%d
、%h
、%b
等是格式控制符-
变量:将不确定的数据进行存储
格式:
数据类型 变量名=初始化值
。变量名不可以使用数字开头及特殊字符,也不可以与关键字同名,通常为xxxYyyZzz
形式(驼峰式) 进制:十六进制以0x开头,八进制以0开头,二进制以0b开头,十进制直接书写
转义符:“\”改变其后面第一个字符的含义。
\n
换行,\b
退格,\r
按下回车键,\t
制表符等。-
运算符:
算数运算符:+、-、*、/、%
比较、条件运算符:>、>=、<、<=、==、!=,结果为true或false。
public class Comparison {
public static void main(String[] args){
System.out.printf("10>5结果%b%n",10>5);
System.out.printf("10>=5结果%b%n",10>=5);
System.out.printf("10<5结果%b%n",10<5);
System.out.printf("10<=5结果%b%n",10<=5);
System.out.printf("10==5结果%b%n",10==5);
System.out.printf("10!=5结果%b%n",10!=5);
}
}
**三元条件运算符:**`条件式?ture返回值:false返回值`
**逻辑运算符:**&&、||、!。对&&来说,当左侧为false时直接返回false;对||来说,当左侧为true直接返回true
**位运算符:**&、|、!、~、>>、<<、>>>逐位运算
public class Bitwise {
public static void main(String[] args){
System.out.println("AND 运算:");
System.out.printf("0 AND 0 %5d%n", 0&0);
System.out.printf("0 AND 1 %5d%n", 0&1);
System.out.printf("1 AND 0 %5d%n", 1&0);
System.out.printf("1 AND 1 %5d%n", 1&1);
System.out.println("\nOR 运算:");
System.out.printf("0 OR 0 %6d%n", 0|0);
System.out.printf("0 OR 1 %6d%n", 0|1);
System.out.printf("1 OR 0 %6d%n", 1|0);
System.out.printf("1 OR 1 %6d%n", 1|1);
System.out.println("\nXOR 运算:");
System.out.printf("0 XOR 0 %5d%n", 0^0);
System.out.printf("0 XOR 1 %5d%n", 0^1);
System.out.printf("1 XOR 0 %5d%n", 1^0);
System.out.printf("1 XOR 1 %5d%n", 1^1);
}
}
`<<`向左移动,右边补0,相当于乘2的幂次,`>>`向右移动,左边补和原来最左边相同的数,`>>>`向右移动,左边补0,相当于除2的幂次
public class Shift {
public static void main(String[] args){
int num=1;
System.out.printf("2 的 0 次方: %d%n", num);
System.out.printf("2 的 1 次方: %d%n", num<<1);
System.out.printf("2 的 2 次方: %d%n", num<<2);
System.out.printf("2 的 3 次方: %d%n", num<<3);
}
}
**自增、自减:**++、--
**指定运算符:**a+=b即a=a+b,以此类推。
-
类型转换:Java中默认整型为int,小数位double
强制转换:
float PI=3.14f
或float PI=(float)3.14
自动转换:运算时以长度最长的类型为主,其它数值自动提升
-
if...else
(1) if(条件式){
描述句;
}
else {
描述句;
}
(2) if(条件式1){
描述句;
}
else if(条件式2) {
描述句;
}
else {
描述句;
}判断数字奇偶性
public class Odd {
public static void main(String[] args){
int input = 10;
int remain = input % 2;
if(remain == 1){//余数为1就是奇数
System.out.printf("%d 为奇数%n", input);
}
else{
System.out.printf("%d 为偶数%n", input);
}
}
}
处理学生成绩等级
public class Level {
public static void main(String[] args){
int score=88;
char level;
if(score>=90){
level='A';
}
else if(score>=80&&score<90){
level='B';
}
else if(score>=70&&score<80){
level='C';
}
else if(score>=60&&score<70){
level='D';
}
else{
level='E';
}
System.out.printf("得分等级:%c%n", level);
}
}
-
switch
switch(变量或表达式){
case 取值1:
描述句;
break;
case 取值2:
描述句;
break;
...
default:
描述句;
}处理学生成绩等级
public class Level2 {
public static void main(String[] args){
int score = 88;
int q = score / 10;
char level;
switch(q){
case 10:
case 9:
level = 'A';
break;
case 8:
level = 'B';
break;
case 7:
level = 'C';
break;
case 6:
level = 'D';
break;
default:
level = 'E'; }
System.out.printf("得分等级:%c%n", level);
}
}
-
for
for(初始化表达式;循环条件表达式;循环后操作表达式){
描述句;
}显示从1到10
public class OneToTen {
public static void main(String[] args){
for(int i=1;i<=10;i++){
System.out.println(i);
}
}
}
显示九九乘法表
public class NineNineTable {
public static void main(String[] args){
for(int j=1; j < 10; j++){
for(int i=2; i < 10; i++){
System.out.printf("%d*%d=%2d ", i,j,i*j);
}
System.out.println();
}
}
}
-
while
(1) while(条件式){
描述句;
}
(2) do{
描述句;
}while(条件式)书上示例,看谁最久不撞到5
public class RandomStop {
public static void main(String[] args){
//直接执行循环
while(true){
int number=(int)(Math.random()*10);//产生0~9的随机数
System.out.println(number);
if(number==5){
System.out.println("I hit 5...Orz");
break;//遇到5就离开循环
}
}
}
}
用do...while改写
public class RandomStop2 {
public static void main(String[] args){
int number;
do{
number=(int)(Math.random()*10);//产生0~9的随机数
System.out.println(number);
}while(number!=5);
System.out.println("I hit 5...Orz");
}
}
-
break
离开当前区块,并执行区块后下一描述句。continue
略过之后描述句,并回到区块开头进行下一次循环。
教材学习中的问题和解决过程
问题:使用System.out.printf()
和System.out.print()
、System.out.println()
有什么区别?
解决:printf是按照格式输出,print是单纯的输出,println是在输出后换行。
代码调试中的问题和解决过程
问题:使用IDE运行第一个程序时没有问题,运行第二个程序的时候控制台仍旧显示的是第一个程序的结果,怎么换到第二个上面?
解决:由于在新建第二个程序时还在第一个程序的页面,工作空间中只是位置还在第一个程序的src中,忘记调过来了,鼠标点在第二个程序的位置就好了。
其他(感悟、思考等,可选)
Java中的语法规则与C语言大同小异,基本没有太大出入,回顾、复习C语言的知识有助于我们更好地掌握Java。刚使用IDE编程时对新建、运行的方法比较生疏,但是多用几次就好了,熟能生巧。编写Java程序也是这样,多看多写才能掌握的更好。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 150/150 | 2/2 | 15/15 | 学会搭建Java环境,学会写Hello World小程序 |
第二周 | 500/500 | 3/3 | 35/35 | 掌握IDE的使用方法,学会Java的基本语法规则 |