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. windows下用Eclipse连接大数据环境得hbase

    1.解压hbase安装包 2.将大数据环境得hadoop安装包拷贝到windows(这里以d:/hadoop为例) 3.打开C:\Windows\System32\drivers\etc目录下的hos ...

  2. Telnet发送邮件之聊以自慰

    北京的冬天,闲着无聊,得做点什么暖暖脑袋,用windows系统自带工具telnet玩了把邮件发送 准备工作: 1.打开windows系统telnet客户端功能 2.准备两个邮箱帐号(xxx@163.c ...

  3. linux配置sftp用户的chroot步骤(用户的sftp根文件夹)

    1.编辑ssh中的sftp的配置,命令可能是:vi /etc/ssh/sshd_config 在这个文件里最后增加 #限制sftp组的用户使用sftp时在自己的home文件夹下 Match Group ...

  4. 10招步骤保护IIS服务器安全

    问题 IIS(Internet Information Server)是黑客特别喜欢的目标.因此,对于管理IIS网页服务器的管理员来说,确保服务器安全是一件至关重要的事.IIS 4.0和IIS 5.0 ...

  5. java读取项目资源文件的方法

    1.把资源文件放在项目的Resource文件夹下,并使其设置成为资源文件夹(通过idea或者eclise)2. Thread.currentThread().getContextClassLoader ...

  6. java代理与动态代理的学习

    静态代理比较简单,就是代理对象与被代理对象继承相同的接口,代理类负责调用被代理类(委托类)的对象的相关方法去提供具体的服务,一个代理类只能为一个接口服务,要是有很多服务的话需要开很多代理类.而动态代理 ...

  7. zookeeper简单操作

    接下来主要讲述了通过zookeeper服务器自带的zkCli.sh工具模拟客户端访问和操作zookeeper服务器(包括集群服务器). 当成功启动zookeeper服务后,切换到server1/bin ...

  8. As of Flume 1.4.0, Avro is the default RPC protocol.

    Flume 1.8.0 Developer Guide — Apache Flume http://flume.apache.org/FlumeDeveloperGuide.html The remo ...

  9. js对象转成用&拼接的请求参数(转)

    var parseParam=function(param, key){ var paramStr=""; if(param instanceof String||param in ...

  10. 原生js实现ajax方法

    下面是一个比较完整的Ajax function ajax(){ var ajaxData = { type:arguments[0].type || "GET", url:argu ...