20145201 《Java程序设计》第二周学习总结

教材学习内容总结

本周学习了课本第三章内容,即JAVA基础语法。

3.1 类型、变量与运算符

基本类型:在java中基本类型主要可区分为整数、字节、浮点数、字符与布尔。

  • 整数:可分为short整数、int整数、long整数。

  • 字节:byte类型,可表示-128~127的整数。长度就是1字节。

  • 浮点数:分为float浮点数和double浮点数。Double可表示的精度比较大。

  • 字符:char类型用来储存字符符号。

  • 布尔:boolean类型可表示true与false,分别代表逻辑的“真”与“假”。

各种类型可存储的数值范围,可以通过API得知。代码如下:

public class Demo {
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);
}
}

经运行结果如下:

2、变量

数据暂存位置在程序语言中成为变量

  • 基本规则:用关键词来声明。
  • 字面常量:在Java中写下一个值,该值称为字面常量。整数字面常量可用十进制、八进制或十六进制表示。
  • 数字常量表示法:想要以二进制表示则可以用0b作为开头,八进制以0开头,十六进制以0x开头。

3、运算符

  • 算术运算:+、-、*、/、% 。
  • 比较、条件运算:>、>=、<、<=、= =、!= 。

    eg.比较运算使用代码:
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);
}
}

结果如下:

  • 逻辑运算:&&(AND)、||(OR)、!(NOT)。

    eg:逻辑运算代码:
public class Demo
{
public static void main(String[] args){
int num=75;
System.out.println(num > 70 && num < 80);
System.out.println(num > 80 || num < 75);
System.out.println(!(num > 80 || num < 75));
}
}

结果如下:

  • 位运算:&(AND)、|(OR)、^(XOR)、~(补码)

    位运算是逐位运算,一个一个对应运算。补码运算是将所有为0变1,1变0。

    在位运算上,java还有左移(<<)和右移(>>),被挤出去的为会被丢弃。

    eg:位运算代码:
public class Demo{
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);
}
}

结果如下:

  • 递增递减运算: ++、--
  • 指定运算:a+=b即a=a+b

3.2流程控制

1、if…else条件式

(1)if(条件){

描述句;}

else{

描述句;}

eg:运用if…else判断数字为奇数或偶数:

程序代码:

public class Odd{
public static void main(String[] args){
int input = 10;
int remain = input % 2;
if(remain == 1){
System.out.printf("%d 为奇数%n", input);
}
else{
System.out.printf("%d 为偶数%n", input);
}
}
}

结果如图:

2、switch条件式:

eg:用switch处理学生成绩等级

程序代码:

public class Level{
public static void main(String[] args){
int score = 88;
int quotient = score / 10;
char level;
switch(quotient){
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);
}
}

运行结果:

3、for循环:

for圆括号中,初始值只执行一次,通常用来声明或出始变量,如果是声明变量,结束for循环后变量就会消失。第一个分号后的语句每次执行循环体前会执行一次来判断是否执行循环体。第二个分号后则是每次执行完循环体后会执行一次。

eg:for循环显示九九乘法表代码如下:

public class Table{
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();
}
}
}

运行结果:

4、while循环

While语句在循环执行前就进行条件判断,do...while不论条件怎样,都至少会执行一次循环。

5、break、continue

break可以离开当前区块,并执行区块后下一个描述句。

continue只会略过之后描述句,并回到循环区块开头进行下一次循环,而不是离开循环。

它们都可以配合标签使用。

教材学习中的问题和解决过程

问题:print、printf、println理解有些混乱,不知什么时候该用什么。

解决:询问同学,上网查资料。

printf主要是继承了C语言的printf的一些特性,可以进行格式化输出。

print就是一般的标准输出,但是不换行。

println和print基本没什么差别,就是最后会换行。

同时,可以利用printf输出字符串,如果输出简单字符println即可。

代码调试中的问题和解决过程

看书上的代码基本都可以看懂,中间出现了一些小问题,看着提示也可以改正。如果没有书上的代码,单独抛出问题让我自己解决,感觉会比较困难。但感觉首先应该多看别人编出的代码,逐渐建立编写程序的思路,有自己的一套编写代码的框架。

其他(感悟、思考等,可选)

经过两周的学习,逐渐对java有更深的理解。它和之前的c语言还是有很多相同的地方。感触最深的一点是,跟着视频学习要比单独看书要容易上手的多。Java主要还是要动手实践,多敲代码,过程中不断出错,不断改正,填补自己的漏洞。同时可以学习一些java的小技巧,让自己的程序变得更加简单,也可以减少因复杂的语句增加程序错误的概率。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 4500行 30篇 400小时
第一周 200/200 2/2 15/15 java相关的基础知识
第二周 300/500 1/3 25/40 java相关的基础语法

参考资料

20145201 《Java程序设计》第二周学习总结的更多相关文章

  1. 20145304 刘钦令 Java程序设计第二周学习总结

    20145304 <Java程序设计>第2周学习总结 教材学习内容总结 java可区分基本类型和类类型(即参考类型)两大类型系统. 基本类型主要可区分为整数.字节.浮点数.字符与布尔. 整 ...

  2. 201521123063 JAVA程序设计 第二周学习总结

    1.本周学习重点(2.27-3.5) java中的数组 以二维数组为例,数组名为scores,则 (1)先声明数组 int[][] scores;或int scores[][];或int[] scor ...

  3. 2017面向对象程序设计(Java)第二周学习总结

    2017面向对象程序设计(Java)第二周学习总结 直系学妹学弟们好!额...不要问我为什么把学妹放前面,我也不知道!我只是你们和蔼可亲的学长一枚而已.也不要问为什么是第二周学习总结而不是第一周,因为 ...

  4. 201871010106-丁宣元 《面向对象程序设计(java)》第二周学习总结

    丁宣元 <面向对象程序设计(java)>第二周学习总结 正文开头 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在 ...

  5. 201521044152<java程序设计>第一周学习总结

    本周学习总结 java开发时间虽然很短,但是发展迅速,已成为现在非常流行的一门语言,很开心能有幸学习java.第一周学习了java的平台,运行环境jdk以及jrt等等新名词,还了解了eclipse的基 ...

  6. 20145304 刘钦令 Java程序设计第一周学习总结

    20145304<Java程序设计>第1周学习总结 教材学习内容总结 1995年5月23日,是公认的Java的诞生日,Java正式由Oak改名为Java. Java的三大平台是:Java ...

  7. 201621123007 Java程序设计第一周 学习总结

    第一周-Java基本概念 201621123007 <Java程序设计> 第一周学习总结 1. 本周学习总结 java是面向对象的一类语言,三大特征:封装性,继承性,多态性. jdk jr ...

  8. 201871010121 王方 《面向对象程序设计(java)》 第二周学习总结

    这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p/11475 ...

  9. 杨其菊201771010134《面向对象程序设计Java》第二周学习总结

    第三章 Java基本程序设计结构 第一部分:(理论知识部分) 本章主要学习:基本内容:数据类型:变量:运算符:类型转换,字符串,输入输出,控制流程,大数值以及数组. 1.基本概念: 1)标识符:由字母 ...

  10. 201777010217-金云馨《面向对象程序设计(Java)》第二周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

随机推荐

  1. gcc/g++实战之动态链接库与静态链接库编写

    函数库一般分为静态库和动态库两种. 静态库: 是指编译链接时,把库文件的代码全部加入到可执行文件中,因此生成的文件比较大,但在运行时也就不再需要库文件了.其后缀名一般为”.a”. 动态库: 与之相反, ...

  2. 转(解决GLIBC_2.x找不到的编译问题)

    Linux/CentOS 升级C基本运行库CLIBC的注意事项(当想解决GLIBC_2.x找不到的编译问题) 分类: 开发环境 Linux2014-09-24 10:32 8933人阅读 评论(5)  ...

  3. python json 序列化任意数据类型

    json默认支持的数据类型 +-------------------+---------------+ | Python | JSON | +===================+========= ...

  4. C# 多线程学习(五)线程同步和冲突解决

    from:https://blog.csdn.net/codedoctor/article/details/74358257 首先先说一个线程不同步的例子吧,以下为售票员的模拟售票,多个售票员出售10 ...

  5. Asynchronous HTTP Requests in Android Using Volley

    Volley是Android开发者新的瑞士军刀,它提供了优美的框架,使得Android应用程序网络访问更容易和更快.Volley抽象实现了底层的HTTP Client库,让你不关注HTTP Clien ...

  6. ORACLE数据库事务隔离级别

    转自:https://www.cnblogs.com/jackal/archive/2011/02/14/1954231.html 事务隔离级别:一个事务对数据库的修改与并行的另一个事务的隔离程度. ...

  7. angualar入门学习-- 自定义指令 认识属性

    个AngularJS指令在HTML代码中可以有四种表现形式: 1.作为一个新的HTML元素来使用 2.作为一个元素的属性来使用 3.作为一个元素的类来使用 4.作为注释来使用 一.创建指令 angul ...

  8. 《挑战程序设计竞赛》2.6 数学问题-快速幂运算 POJ1995

    POJ3641 此题应归类为素数. POJ1995 http://poj.org/problem?id=1995 题意 求(A1^B1+A2^B2+ - +AH^BH)mod M. 思路 标准快速幂运 ...

  9. OracleUNDO

    UNDO作用 数据的回滚 一致性读 表的闪回(事务,查询的闪回....) 失败会话的恢复 数据的回滚 SQL> rollback; 回滚的过程就是从回滚段里拿到刚刚执行的这条语句产生的回滚,然后 ...

  10. where case 使用

    1 traceroleid表数据 tracerleid 表放着角色的相关信息, 角色ID 角色类型 密码 2 traceaccountmap表数据 表中存放着客户号和 其他角色的关系 tracerol ...