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. [Go语言]从Docker源码学习Go——指针和Structs

    这两天在看reflect这个包在Docker中的使用时,遇到了各种问题,最后虽然知道怎么用了. 但是对于这块的原理还不是太懂,于是把"THE WAY TO GO"中关键的几章看了下 ...

  2. AngularJs 解决浏览器在初始化代码未加载完毕时 而出现闪烁的问题

    1. ng-cloak; 因浏览器会先加载dom元素 而针对于{{pression}} 由于angularjs 还没加载完,会在页面出现闪烁 2.ng-bind; 用ng-bind代替{{expres ...

  3. SPOJ OPTM - Optimal Marks

    OPTM - Optimal Marks no tags  You are given an undirected graph G(V, E). Each vertex has a mark whic ...

  4. iOS tabbar 属性

    1.设置tabbar背景颜色 NSArray *controllers = [NSArray arrayWithObjects:nav_main,nav_channle,nav_me, nil]; _ ...

  5. org.apache.zookeeper.ClientCnxn - Got ping response for sessionid: 0x160fd6f04410017 after 0ms

    dubbo报错: org.apache.zookeeper.ClientCnxn - Got ping response for sessionid: 0x160fd6f04410017 after ...

  6. LeetCode-Integer Breaks

    Given a positive integer n, break it into the sum of at least two positive integers and maximize the ...

  7. [Navicat] 常用快捷键及注意事项

    近来需要同时管理多种类型.多台server的数据库,在经历了各种查询客户端(SSMS, SQLyog, PL/SQL等)的不断切换,ip/user/pwd的反复输入的这种自虐式体验后,实在无法忍受,就 ...

  8. PIP源使用国内镜像

    对于Python开发用户来讲,PIP安装软件包是家常便饭.但国外的源下载速度实在太慢,浪费时间.而且经常出现下载后安装出错问题.所以把PIP安装源替换成国内镜像,可以大幅提升下载速度,还可以提高安装成 ...

  9. ThinkPHP中通过URL重写隐藏应用的入口文件index.php的相关服务器的配置

    [ Apache ] 将httpd.conf配置文件中mod_rewrite.so所在行前面的‘#’去掉 AllowOverride None 将None改为 All 效果图

  10. 巨蟒python全栈开发flask8 MongoDB回顾 前后端分离之H5&pycharm&夜神

    1.MongoDB回顾 .启动 mongod - 改变data/db位置: --dbpath D:\data\db mongod --install 安装windows系统服务 mongod --re ...