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

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

教材学习内容总结

本周学习教材第三章,本章主要讲述了java语言中的一些基础语法,java是个支持面向对象的程序语言,但在正式进入面向对象支持语法的探讨前,对于类型、变量、运算符、流程控制等,这些各种程序语言都会有的基本语法元素,还是要有一定的基础。虽然各种程序语言都有这些基本语法元素,但千万别因此而轻忽它们,因为各种程序语言都有其诞生的宗旨与演化过程,对这些基本语法元素,也就会有其独有的特性。

1. 类型

在java的世界中,并非每个东西都抽象化为对象,你还是要面对系统的一些特性。例如你还是要意会到内存长度有限的问题,所以程序执行时遇到123这个整数时,还是要想一下,用多少长度的内存来储存它比较经济。基本上,java可区分为基本类型和类类型两大类型系统,其中类类型也称为参考类型。

基本类型(每种类型都有其储存范围,如超出范围,即Overflow):

所谓基本类型,就是在使用时,得考虑一下数据用多少内存长度来存比较经济,利用程序语法告诉JVM,然后由JVM自动为你在内存中配置与管理。在java中的基本类型主要可以区分为整数、字节、浮点数、字符与布尔。

  1. 整数:可分为short整数(占2字节),int整数(占4字节),long整数(占8字节)三种,不同长度的整数,可储存的整数范围也不同。long整数占的内存长度比int整数来得多,可表示的整数范围也就比int大。例如,int类型的十进制2其实是以000000000 00000000 00000000 00000000 00000010形式存储在内存中。所占字节越多的整数类型可表示的整数范围越大。
  2. 字节:byte类型顾名思义,长度就是一字节,在需要逐字节处理数据时(如图像处理、编码处理等)就会使用byte类型,byte也可以用来表示整数,可表示的整数范围是-128~127。
  3. 浮点数:主要用来储存小数数值,可分为float浮点数(占4字节),double浮点数(占8字节)。double浮点数使用的内存空间比float浮点数来得多,可表示的精确度也比较大。
  4. 字符:char类型用来储存‘A’、‘B’、‘林’等字符符号。每个字符类型占2字节,汉字字符与英文字符在java中同样都是双字节储存。
  5. 布尔:boolean类型可表示true和false,分别代表逻辑的“真”与“假”。在java中不用在意boolean类型的长度,因为你也无法将boolean类型与其他类型做运算。
  6. 备注:每种类型占有的内存长度不同,可储存的数值范围也就不同。例如,int类型的内存空间是四字节,所以可储存的整数范围为-2147483648~2147483647,如果储存值超过了类型范围称为溢值,会造成程序不可预期的后果,而且我们不用记忆各种类型可储存的数值范围,可以通过API来实现。System.out.printf()是标准API,意思是对输出文字做格式化后再显示在文本模式中,一些常用的格式控制符号要熟记!(书上有表格列出) 类类型:详见第四章

2. 变量

程序语言中的暂存位置我们称之为变量,可以声明变量,也就是告诉JVM,我想要某个位置,这个位置叫做XXX名称,可以放什么类型的数据。 1. 使用前要声明变量类型,即使用上文所提到过的short,byte,char等关键词来声明 2. 变量在命名时有一些规则,它不可以使用数字作为开头,不可使用特殊字符,而且变量名称不可以与java的关键词同名,常用“驼峰式”命名法,如“int ageOfStudent”。目前为止,我们的程序范例都是撰写在main()中,在方法中声明的变量称为局部变量。 3. 不可以声明局部变量后未指定任何值给它之前就使用变量。在调用变量之前,要对变量初始化,即给变量赋值。ps:如果,在变量赋值后,不打算改变可以加上final,例如final double PI=3.1415926;来防止自己或他人不经意修改。 4. tips:在表示数字常量时,0b表示二进制数,0x表示十六进制数,如int a=0xC,在表示较长的数字时,使用下划线可以使表达更加清楚。如int b=0b1010 _1010 _1010。

3. 运算符

  1. 算数运算符+、-、*、/。也就是加、减、乘、除。%成为模运算符或余除运算符。算数运算符使用上与学过的加减乘除一样,也是先乘除后加减。(详情看书上例子)运算符两边各留一个空格,这样比较容易阅读。
  2. 数学上还有大于、等于、小于的比较运算,java中也提供了这些运算,这些运算符称为比较运算符,它们有大于(>)、小于(<)、等于(==)、不小于(>=)、不大于(<=)以及不等于(!=)等条件运算符。记住“等于”是两个等号!一个=是指定运算。java有个条件运算符,(Conditional Operator):条件式?成立返回值:失败返回值。如System.out.println("是否及格?%d%n", score>=60?‘yes‘:‘no‘);
  3. 在逻辑运算符中,有“且”“或”“反相”这几种逻辑。分别用&&(与)、||(或)、!(非)来表示。&&的特点在于如果&&左边为假,则不论右边真值如何,其逻辑判断返回结果为假;同样的,||的特点在于如果||的左边为真,则不论右边真值如何,其逻辑判断返回结果为真。这在一定的程度上还是能提高代码的编译执行效率。
  4. 位运算符:在数字设计上有AND、OR、NOT、XOR与补码运算,在java中提供对应的位运算符,分别是&(AND)、|(OR)、^(XOR)、~(补码)。如果不会基本位运算,可以从书上的例子找找感觉。位运算是逐位运算。补码运算是将所有位0变1,1变0。java在位运算中还有(>>)左移与(<<)右移两个运算符。左移运算符会将所有位往左移指定数位,左边被挤出去的位会被丢弃,而右边补上0;右移运算符则相反,会将所有位往右移指定位数,右边被挤出去的位会被丢弃,至于最左边补上原来的位,如果左边原来就是0就补0,是1就补1.还有个>>>运算符,这个运算符在右移后,最左边一定是补0.
  5. 递增递减运算我也觉得没什么难度,和c语言里的知识很类似。关键是要区分i++,++i,如果将++运算写在变量前,表示先将变量值加1,然后再返回变量值;将++写在变量后,表示先返回变量值,然后再对变量加1.(书上有例子)
  6. 指定运算的话,参考书上的表格就行了,没什么难度。

4. 类型转换

  1. 在实际操作中无论是刻意修改还是无心之失,都会出现将变量类型混淆的情况。例如,在默认情况下,整数均为int型,浮点数为double型。像在如下例子中 float PI = 3.14,3.14默认为double型,不能把double型的小数赋给float型,这样就会丢失精度,编译时就会报错。但如果非要用float来储存的话,可以在3.14后面加个F,或者float PI=(float)3.14。在程序中写下一个整数时,默认是不超过int类型长度。如果超过了,你就要告诉编译程序,用long来配置整数的长度,也就是在数字后加上个L.
  2. 运算时,类型不相同,则运算时会以最长的类型为主(自动提升)。当然如果操作中都是不大于int的整数,则全部自动提升为int类型进行运算。
  3. System.out.println(10/3);显示的是3,不是3.3333。因为10与3都是在int类型下的计算,若要表示3.333,则必须是System.out.println(10.0/3)。

5. 流程控制

  1. if……else我觉得很简单,直接类比c语言学的知识。
  2. switch:使用效果类似多个if……else语句连用,但是更为简洁,通过不同的switch值进入case语句。
  3. for:写成for( ……; ……; ……),第一个分号前内容多为变量初始化。第一个分号后为判断,结果为true执行第二个分号后的语句并进入循环,结果为false则结束循环。块与块之间用分号隔开,块的内部用逗号隔开。
  4. while do 与 do while:while(条件式){描述句},先判断条件式是否成立,如果成立,则执行描述句。也可以while(true)直接进入循环,在循环内通过if语句判断,达成某种情况依靠break;结束循环。do while与其的区别是先产生一个number(以书上例子为例),再判断要不要执行循环。而while do是直接一来就进入循环。
  5. break、continue:break为直接结束循环,continue为结束当前循环,跳过之后的描述语句,然后返回开头进行下一轮循环。break、continue还可以配合标签使用(书上有例子),具体过程将在程序实践中展示。

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

课后选择题:DADDABADAD

课后程序题1

运行结果: 1000和495的最大公因子是: 5 1000和495的最小公倍数是: 99000

其实感觉难度不大,因为上学期学过密码学数学基础这门课,刚好这里用到了辗转相除法的概念,在此通过while语句来实现循环,最后当余数为0时结束循环。

课后程序题2

运行结果: 153 370 371 407

我首先想到的是用for循环,通过穷举来找出100~1000中的阿姆斯特朗数,值得注意的是要用%将个位上的数分离出来,且a、b、c都是int型。其他没什么难的地方。

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

如果是continue back1,没有任何输出结果。但如果是continue back2,输出“hello world”九次。这里虽然没有展示break的情况,但是break与continue结合标签使用时,back标签都要在for之前!

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

1.java中的基础语法和c语言中的基础语法其实并没有太大区别,所以可以类比来学习,这样会事半功倍。 2.除了掌握一些基础的知识,主要还是要多敲代码,细节决定成败,不断实践,不断发现错误,不断解决问题,这样自身能力才能提高~!

学习进度条

  代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 3500行 25篇 300小时  
第一周 120/120 1/1 14/14  
第二周 340/460 1/2 14/28  
第三周        
第四周        

参考资料

时间: 2024-10-24 20:03:39

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

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

2017面向对象程序设计(Java)第二周学习总结 直系学妹学弟们好!额...不要问我为什么把学妹放前面,我也不知道!我只是你们和蔼可亲的学长一枚而已.也不要问为什么是第二周学习总结而不是第一周,因为第一周学长正在家里吃西瓜吹空调.好了,闲言少叙.我先为你们介绍一下助教的职责,而后再对你们的学习情况进行总结! 身为你们本学期Java课程的助教...之一,我的任务是:指导你们学习,批改我所负责学习小组的实验作业.阅读博文并回复.其他学习小组会有另外三位助教负责.由于我们每周五都会汇总你们的情况,其

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

项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p/11475377.html 作业学习目标 学习并掌握Java Application程序结构: 学习并掌握Java语言的数据类型与变量: 学会使用Java运算符构造各类表达式: 掌握Java Application输入输出技术: 掌握Java流程控制技术(分支.循环): 掌握Math类.Strin

201771010123汪慧和《面向对象程序设计Java》第二周学习总结

一.理论知识部分 1.标识符由字母.下划线.美元符号和数字组成, 且第一个符号不能为数字.标识符可用作: 类名.变量名.方法名.数组名.文件名等.第二部分:理论知识学习部分 2.关键字就是Java语言中已经被赋予特定意义 的一些单词. ?常见有:class.public.try.catch.if. float.import.void等. 关键字不做变量名. 3.Java有三种注释的方式:   // 注释内容由//一直到此行结束. /*和*/ 定义一个注释块.  /**开始,*/结束 这种注释方法

(java) 第二周学习总结

在java源代码中,每个变量都必须声明一种类型(type).有两种类型:primitive type和reference type.引用类型引用对象(reference to object),而基本类型直接包含值(directly contain value).因此,Java数据类型(type)可以分为两大类:基本类型(primitive types)和引用类型(reference types).primitive types 包括boolean类型以及数值类型(numeric types).n

20172328《程序设计与数据结构》第二周学习总结

20172328李馨雨<程序设计与数据结构>第二周学习总结 又到周五,李馨雨同学要开始写博客了.让我们开始吧!(????) 教材学习内容总结 1.首先是String类定义的字符串,然后是print和println的区别.转义字符的学习.(让我印象深刻的\b[回车符]在字符串结尾不显示哈哈,及其更新的\t[换行符],还有在课堂上真正明白了什么是回车.) 2.了解变量.常量.赋值语句.变量:保存数据的内存单元.常量:坚定自己不会变的数据!除非你用java的反射(有点复杂,改权限.去修饰符等等.没实

20165217第二周学习总结

20165217叶佺<Java>第二周学习总结 教材学习内容总结 本周主要学习了 1.如何设置变量及赋值,如何设置常量 2.print和println的区别,一些基本的转义字符 3.表达式及一些运算符.数据的加宽转换和缩窄转换 4.重点讲一下Scanner类.这个类可以输入不同类型的输入值,这样就不用在写代码时事先赋予一定的值了.Scanner类的一些方法是很有用的,在做PP2.4,PP2.6等课后作业时都用到了 教材学习中的问题和解决过程 问题1:在运行书上的程序2.8和2.9时,一直没有结

20155336 2016-2017-2《JAVA程序设计》第二周学习总结

20155336 2016-2017-2 <JAVA 程序设计>第二周学习总结 教材学习内容 1: GIT版本检测 2: JAVA中基本类型 整数 字节 浮点数 字符 布尔(▲) 通过API可以得知各个类型可存储的数值范围 public class Range {public static void main(String[] args){ //byte.short.int.long的范围 System.out.printf("%d~%d%n", Byte.MIN_VALU

20165223《JAVA程序设计》第二周学习总结

20165223 <JAVA程序设计>第二周学习总结 教材学习内容总结 第二章要点 标识符与关键字 基本数据类型 类型转换运算 输入输出数据 数组 第三章要点 运算符与表达式 语句概述 if条件分支语句 switch开关语句 循环语句 break和continue语句 数组与for语句 教材学习中的问题和解决过程 标识符与关键字 标识符=名字:由字母.下划线.$.数字组成,长度不受限:第一个字符不能是数字字符:区分大小写:不能用关键字:不能是true.false.null java使用的语言:

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

<面向对象程序设计(java)>第二周学习总结 王颖奇 201771010129 第一部分:实验目的与要求 ①理论部分目的与要求 (1)3.1基本知识(2)3.2数据类型(3)3.3变量(4)3.4运算符(5)3.5类型转换 (6)3.6字符类型(7)3.7输入输出(8)3.8控制流程(9)3.9大数值(10)3.10数组 ②实验部分目的与要求 (1)进一步熟悉命令行和IDE两种方式下java程序开发的基本步骤: (2)掌握Eclipse集成开发环境下导入Java源程序的过程: (3)掌握Ja