20145219 《Java程序设计》第02周学习总结

时间:2024-01-12 12:46:44

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);
    }

    }

    20145219 《Java程序设计》第02周学习总结

  • 注释:单行注释(“//”之后的文字)、多行注释(“/”与“/”之间的文字)

  • 使用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);
    }
    }

20145219 《Java程序设计》第02周学习总结

**三元条件运算符:**`条件式?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);
}
}

20145219 《Java程序设计》第02周学习总结

`<<`向左移动,右边补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);
}
}

20145219 《Java程序设计》第02周学习总结

**自增、自减:**++、--

**指定运算符:**a+=b即a=a+b,以此类推。
  • 类型转换:Java中默认整型为int,小数位double

    强制转换:float PI=3.14ffloat 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);
    }
    }
    }

20145219 《Java程序设计》第02周学习总结

处理学生成绩等级

	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);
}
}

20145219 《Java程序设计》第02周学习总结

  • 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);
    }
    }

20145219 《Java程序设计》第02周学习总结

  • for

      for(初始化表达式;循环条件表达式;循环后操作表达式){
    描述句;
    }

    显示从1到10

      public class OneToTen {
    public static void main(String[] args){
    for(int i=1;i<=10;i++){
    System.out.println(i);
    }
    }
    }

20145219 《Java程序设计》第02周学习总结

显示九九乘法表

	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();
}
}
}

20145219 《Java程序设计》第02周学习总结

  • 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就离开循环
    }
    }
    }
    }

20145219 《Java程序设计》第02周学习总结

用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");
}
}

20145219 《Java程序设计》第02周学习总结

  • 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的基本语法规则

参考资料