教材学习内容总结

学习目标

了解Java编程风格

认识Java的类型与变量

掌握Java流程控制的方法(分支、循环)

教材第三章内容总结

  • 认识类型与变量
  • 学习运算符的基本使用
  • 了解类型转换细节
  • 运用基本流程语法

第三章的主要内容就是Java基本语法,可以运用分支、循环等写一点自己的小程序了。

不论是Java的类型(整数、字符、字节、浮点数等)还是格式控制符、运算符、条件语句和循环语句的运用方式,Java的语法和C有太多相似的地方,所以有很熟悉的感觉。

以下是对于类型、运算符和条件式的总结:

类型

字节:byte类型,一般在需要逐字节处理数据的时候使用;

整数:分为short整数(占2字节)、int整数(占4字节)、long整数(占8字节);

浮点数:分为float、double浮点数,double的精确度大于float(与C语言相同);

字符:char类型,每个字符占两个字节。

运算符

算术运算:普通的加减乘除运算,在此不多列举;

比较运算与条件运算:大于小于等运算;

逻辑运算:与运算(&&)、或运算(||)、非运算(!);

位运算:&、|、^、~。- 递增递减运算:++、--;

指定运算:很少用的类型(例:+=、-=)。

类型转换

自动提升类型;

强制转换类型。

流程控制

if-else条件式(判断语句);

switch条件式(选择语句);

for循环(循环语句);

while循环(循环语句);

break、continue(其他)

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

照着教材55页敲了一遍代码,对于其中的各种类型的范围有了深入的理解。

/**
* Created by XiaYihua on 2017/1/23.
*/ package cc.openhome 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); }
}

教材62页的有关位运算的代码~加深了对于print、printf、println的区别的理解

/**
* Created by XiaYihua on 2017/1/23.
*/ package cc.openhome; public class Bitwise {
public static void main(String args[]){
//AND
System.out.println("AND运算:\n");
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);
//OR
System.out.println("\nOR运算:\n");
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);
//XOR
System.out.println("\nXOR运算:\n");
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); }
}
/**
* Created by XiaYihua on 2017/1/24.
*/ 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);
}
}
/**
* Created by XiaYihua on 2017/1/24.
*/
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);
}
}
/**
* Created by XiaYihua on 2017/1/24.
*/
public class Level2 {
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);
}
}
/**
* Created by XiaYihua on 2017/1/24.
*/
public class Shift
{
public static void main(String[] args)
{
int number=1;
System.out.printf("2 的 0 次方: %d%n",number);
System.out.printf("2 的 1 次方: %d%n",number << 1);
System.out.printf("2 的 2 次方: %d%n",number << 2);
System.out.printf("2 的 3 次方: %d%n",number << 3);
}
}

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



Java的package和C语言的“库”比较类似,在这个地方我习惯性地没有添加分号,导致错误。



发现打印的结果和书上不一样,换不了行,仔细对照之后发现是println和printf的问题

  • println打印的时候自带了换行,下一次在打印的时候从下一行开始打印。
  • print就是一般的标准输出,但是不换行,下次打印的时候在这次打印的东西后面直接打印。
  • printf主要是继承了C语言的printf的一些特性,可以进行格式化输出
  • println和print基本没什么差别,就是最后会换行

总结一下print\println\printf的区别

print将它的参数显示在命令窗口,并将输出光标定位在所显示的最后一个字符之后。

println 将它的参数显示在命令窗口,并在结尾加上换行符,将输出光标定位在下一行的开始。

printf是格式化输出的形式。

举个例子:

package other;
public class TestPrint {
public static voidmain(String[] args) {
int i = 4;
double j = 5;
System.out.print("用print输出i:"+ i);
System.out.println( "用println输出i:"+ i);
System.out.printf("i的值为%d,j的值为%f", i,j);
}
}

运行结果为

用print输出i:4用println输出i:4

i的值为4,j的值为5.000000

可以看到,用print输出i后,没有换行,用println输出的结果直接在print输出语句后面,而输出println后换行了,所以用printf输出时,在第二行输出。

再来看printf

“i的值为%d,j的值为%f”这个字符串中的"%d"变为i的值了,而"%f"变为了j的值了!这里,"%d"的意思是一个int值的占位符,"%f"为一个double 或float值的点位符,这个变量的参数在后面提供。>注意的是实参名必须按顺序排。不然就会错了。而且类型也要相符。如果我们把语句改为System.out.printf("i的值为%d,j的值为%f", j,i);//i和j位置反了这时就有错了因为"%d"对应的参数变为j,"%f"对应的变为i了,而j是double的,与"%d"是int形的不一致。所以有错了。还有"%s"是一个字符串值的点位符的意思。"%c"是一个字符值的点位符的意思。

  • 为什么j输出变成了5.000000?那是因为double是默认有6位小数的(这个可能和系统电脑有关,有的不是6位吧)但是如果只要输出两位小数?和c语言一样,改为 `System.out.printf("i的为%d,j的值为%.2f", i,j);`这里的"%.2f"的意思是输出两位小数点,如果想输出三位那就"%.3f"。

printf有用在于可以控制输出的格式,和C语言同理,可以补齐占位等。

代码托管截图

其他

换了新的电脑,虚拟机还是拖不了IDEA,Mac版和windows版配置还是有一些差别,所以我参照了一些CSDN上的博客进行配置。

Mac配置JDK教程

使用mac的同学可以参考一下这个~各个博客众说纷纭,其实mac版的idea已经内置了jdk,只需按照上述步骤设置一下就可以了。

虽然走了好多弯路。。。但是真切地感受到了技术博客的优越性,慢慢精研技术之后希望有一天我也可以在CSDN上发表一些可以帮助别人的东西吧~

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第二周 300/400 1/3 12/52

参考资料

20145226夏艺华 《Java程序设计》第2周学习总结的更多相关文章

  1. 20145226夏艺华 JAVA预备作业1

    博客阅读总结 关于师生关系: 学生和老师之间我觉得关系时多元化的,不能拘泥于单独的一种关系:灌输与被灌输,教授与被教授--我认为,在不同的课程阶段,师生之间的关系都可以发生变化.前期的老师更像是一个指 ...

  2. 20145226夏艺华 《Java程序设计》实验报告四

    实验四 Android开发基础 实验内容 基于Android Studio开发简单的Android应用并部署测试 了解Android组件.布局管理器的使用 掌握Android中事件处理机制 Andro ...

  3. 20145226夏艺华 网络对抗技术 EXP9 web安全基础实践

    20145226夏艺华 网络对抗技术 EXP9 web安全基础实践 !!!免考项目:wannacry病毒分析+防护 一.实验后回答问题 SQL注入攻击原理,如何防御 攻击原理 "SQL注入& ...

  4. 20145226夏艺华 网络对抗技术EXP8 WEB基础实践

    20145226夏艺华 网络对抗技术EXP8 WEB基础实践 实验问题回答 1.什么是表单? 表单在网页中主要负责数据采集功能.一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CG ...

  5. 20145226夏艺华 网络对抗技术 EXP7 网络欺诈技术防范

    20145226夏艺华 网络对抗技术 EXP7 网络欺诈技术防范 实践内容 本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法. · 简单应用SET工具建立冒名网站 · ett ...

  6. 20145226夏艺华 Exp6 信息搜集与漏洞扫描

    20145226夏艺华 Exp6 信息搜集与漏洞扫描 基础问题回答 哪些组织负责DNS,IP的管理? · 全球根服务器均由美国政府授权的ICANN统一管理,负责全球的域名根服务器.DNS和IP地址管理 ...

  7. 20145226夏艺华 网络对抗技术EXP4 恶意代码分析

    20145226夏艺华 网络对抗技术EXP4 恶意代码分析(未完成版) 回答问题 (1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作 ...

  8. 20145226夏艺华《网络对抗》第一次实验拓展:shellcode注入+return-to-libc

    20145226夏艺华<网络对抗>第一次实验拓展:shellcode注入+return-to-libc shellcode注入实践 编写shellcode 编写shellcode已经在之前 ...

  9. 20155312 2016-2017-2 《Java程序设计》第九周学习总结

    20155312 2016-2017-2 <Java程序设计>第九周学习总结 课堂内容总结 两个类有公用的东西放在父类里. 面向对象的三要素 封装 继承 多态:用父类声明引用,子类生成对象 ...

  10. 20155213 2016-2017-2 《Java程序设计》第九周学习总结

    20155213 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 JDBC(Java DataBase Connectivity)即java数据库连 ...

随机推荐

  1. django admin后台插件:django-suit入门

    去年9月底开始用django来做公司内部项目,开始对django有了一些了解,感觉django真的蛮强大的(也有很多人推荐flask,将来有空的话我会试试).今天的话只是介绍一个小东西,django管 ...

  2. BZOJ3926:[ZJOI2015]诸神眷顾的幻想乡(广义SAM)

    Description 幽香是全幻想乡里最受人欢迎的萌妹子,这天,是幽香的2600岁生日,无数幽香的粉丝到了幽香家门前的太阳花田上来为幽香庆祝生日. 粉丝们非常热情,自发组织表演了一系列节目给幽香看. ...

  3. Unicode data in a Unicode-only collation or ntext data cannot be sent to clients using DB-Library (such as ISQL) or ODBC version 3.7 or earlier

    php 连接 sqlserver 时, 程序生成的sql语句, 如果在 sqlserver客户端执行时, 可以正确返回结果, 在程序中执行, 总返回 false, 打开调试也没有任何错误. 无意中发现 ...

  4. classlist和array.prototype.slice.call

    1.classlist document.getElementById("myDIV").classList.add("mystyle"); classList ...

  5. JQuery资源网站(收藏)

    收藏几个不错的JQuery资源网站,以后备用,给共享者点个赞!!! http://jquery.com/ http://www.htmleaf.com/ http://www.oschina.net/ ...

  6. Python 有用的 map() deduce() filter() 函数

    #!/usr/bin/python#5!+4!+3!+2!+1! #give 3 return 3*2*1def jiechen(n): N = map(lambda x:x+1,range(n)) ...

  7. LeetCode34.在排序数组中查找元素的第一个和最后一个位置 JavaScript

    给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值在数组中的开始位置和结束位置. 你的算法时间复杂度必须是 O(log n) 级别. 如果数组中不存在目标值,返回 [ ...

  8. 【腾讯敏捷转型No.2】帅哥,来多少敏捷?

    上回腾讯敏捷转型系列第一篇文章<敏捷到底是什么鬼?>讲到公司铁了心要推进敏捷,这是战略层面的决定,为什么呢? 当时的我们并不知道公司为什么一定要推行敏捷的新概念,但是后来公司的变化帮助我们 ...

  9. Java中的类与对象

    一.类与对象的概念 1.类:类是一组相同属性.方法的对象的集合:对象是类的具体化. 2.对象具有类所有的特征,类拥有的,对象就拥有. 3.类与对象他们的关系是相对的. 类有什么特点 1) 类是对象的类 ...

  10. windows安装Oracle数据库

    我装的版本是Oracle11,64位,直接网上下载即可.安装过程中也出现了一些坑,现在整理了一下. 1.下载的目录和安装的目录最好放到英文目录下,别放到中文或者特殊字符的文件夹中,点击setup.ex ...