20165231 2017-2018-2 《Java程序设计》第2周学习总结

前言

第二周算是正正式式的学习了java程序设计。之前对java是一片茫然,现在算是初见端倪了,知道了java程序的基本开头,多个class时该运行哪个,哪个是输出打印语句等等。

目前我使用的java代码编写程序是AtomAtomGithub 开源的文本编辑器,这个编辑器完全是使用Web技术构建的(基于Node-Webkit)。启动速度快,提供很多常用功能的插件和主题,可以说Atom已经足以胜任“半个IDE”了。

相比记事本和linux系统中的vimgedit等等编辑器来说Atom十分智能,不同功能不同性质代码颜色不同以示区别,甚至还可以补全代码(但是这功能得以后熟练以后再用,现在就是要多练习多打代码记下基本格式和语句)。

Atom还可以体系管理整个大文件夹下的的众多文件夹和文件,可以在侧边栏一目了然自己代码文件夹下有些什么文件夹和文件,代码打开切换也非常迅速。推荐使用,windows子系统直接安装到windows下然后打开Atom open project在C盘找到自己子系统文件夹(以我自己的为例C:\Users\wyhy-(电脑所有者用户名,具体找自己的名字)\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home\yhooyon(我ubuntu系统名,具体找自己的))找到自己用户文件夹找到存放代码的src文件夹就可以管理自己的代码了。
Atom

教材学习内容总结

标识符与关键字

标识符

用来标识类名、变量名、方法名、类型名、数组名及文件名的有效字符序列称为标识符,标识符就是一个名字。

java关于标识符的规则:

  • 标识符由字母、数字、下划线“_”、美元符号“$”组成,第一个字符不能是数字。
  • 不能把java关键字和保留字作为标识符。
  • 标识符没有长度限制。
  • 标识符对大小写敏感。

关键字

关键词就是具有特定意义的单词,不可以作为标识符。
java50个关键字;

  • abstract 表明类或者成员方法具有抽象属性
  • assert 断言,用来进行程序调试
  • boolean 基本数据类型之一,布尔类型
  • break 提前跳出一个块
  • byte 基本数据类型之一,字节类型
  • case 用在switch语句之中,表示其中的一个分支
  • catch 用在异常处理中,用来捕捉异常
  • char 基本数据类型之一,字符类型
  • class 声明一个类
  • const 保留关键字,没有具体含义
  • continue 回到一个块的开始处
  • default 默认,例如,用在switch语句中,表明一个默认的分支
  • do 用在do-while循环结构中
  • double 基本数据类型之一,双精度浮点数类型
  • else 用在条件语句中,表明当条件不成立时的分支
  • enum 枚举
  • extends 表明一个类型是另一个类型的子类型,这里常见的类型有类和接口
  • final 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变,用来定义常量
  • finally 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块
  • float 基本数据类型之一,单精度浮点数类型
  • for 一种循环结构的引导词
  • goto 保留关键字,没有具体含义
  • if 条件语句的引导词
  • implements 表明一个类实现了给定的接口
  • import 表明要访问指定的类或包
  • instanceof 用来测试一个对象是否是指定类型的实例对象
  • int 基本数据类型之一,整数类型
  • interface 接口
  • long 基本数据类型之一,长整数类型
  • native 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的
  • new 用来创建新实例对象
  • package 包
  • private 一种访问控制方式:私用模式
  • protected 一种访问控制方式:保护模式
  • public 一种访问控制方式:共用模式
  • return 从成员方法中返回数据
  • short 基本数据类型之一,短整数类型
  • static 表明具有静态属性
  • strictfp 用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范
  • super 表明当前对象的父类型的引用或者父类型的构造方法
  • switch 分支语句结构的引导词
  • synchronized 表明一段代码需要同步执行
  • this 指向当前实例对象的引用
  • throw 抛出一个异常
  • throws 声明在当前定义的成员方法中所有需要抛出的异常
  • transient 声明不用序列化的成员域
  • try 尝试一个可能抛出异常的程序块
  • void 声明当前成员方法没有返回值
  • volatile 表明两个或者多个变量必须同步地发生变化
  • while 用在循环结构中

java中的基本类型

  • 整数:可细分为short(占2字节)、int(占4字节)、long(占8字节)
  • 字节:byte,若用于表示整数,byte可表示-128~127的整数
  • 浮点数:主要用于存储小数数值,可分为float(占4字节)与double(占8字节)
  • 字符:char,汉字、英文字符都是双字节的,Java字符编码是Unicode
  • 逻辑类型:boolean

类型转换

类型很多时候编译不通过,可能就是这些细节不注意。Java中对变量类型区分是非常严格的,在不特别指明的情况下,整数一般为int类型,小数则默认为double型,如果不特别注意这些就容易犯错,例如: float PI = 3.14,3.14默认为double型,不能把double型的小数赋给float型,这样就会丢失精度,编译时就会报错。

输入、输出数据

输入基本型数据

 Scanner是SDK1.5新增的一个类,可是使用该类创建一个对象.  
Scanner reader=new Scanner(System.in);  
然后reader对象调用下列方法(函数),读取用户在命令行输入的各种数据类型:  

next.Byte(),nextDouble(),nextFloat,nextInt(),nextLine(),nextLong(),nextShot() 

 

上述方法执行时都会造成堵塞,等待用户在命令行输入数据回车确认.例如,拥护在键盘输入12.34,hasNextFloat()的值是true,而hasNextInt()的值是false. NextLine()等待用户输入一个文本行并且回车,该方法得到一个String类型的数据。

输出基本型数据

System.out.println()和System.out.print()
可输入串值、表达式的值,二者的区别是前者输出数据后换行,后者不换行。允许使用并置符号+将变量、表达式或一个常数值与一个字符串并置一起输出。
格式控制符:

  • %d:输出int类型数据
  • %c:输出char类型数据
  • %f:输出浮点数类型数据,小数点最多保留6位。
  • %s:输出字符串类型数据。
  • %md:输出int类型数据占m列
  • %m.nf:输出浮点类型数据占m列,小数点保留n位。

运算符

  • 在逻辑运算符中,&&的特点在于如果&&左边为假,则不论右边真值如何,其逻辑判断返回结果为假;
    同样的,||的特点在于如果||的左边为真,则不论右边真值如何,其逻辑判断返回结果为真。这在一定的程度上还是能提高代码的编译执行效率。
  • 在递增、递减运算符中,就要注意运算符是放在变量的左边还是右边,如果运算符在变量左边,则先改变变量值再进行运算,如果运算符在变量右边,则先进行运算再对变量进行相应的加减变化。
    运算符
    运算符

语句

if...else条件式

需要注意的是一定要把执行的语句用大括号括起来,否则,默认的是只执行if后的第一句。

switch条件式

switch有点像多个分支的if语句,但在某些情况下,用switch可以提高代码的效率,书本上也有相应的例子,不用进入每个if语句去判断,可以通过待判断的值直接进入相应的case,只是注意switch一般都会配以break一起使用,编写代码时不能忘记这一点。

while循环

当型循环:while(条件式){描述句},先判断条件式的布尔类型,如果成立,则执行描述句。
直到型循环:do{描述句}while(条件式);,特点是先执行一遍描述句,再判断条件,如果条件成立就再执行一遍描述句,直到条件不成立为止。

需要注意的是:while的两种类型的区别,在写法上,注意当型while后没有分号,第二种有分号。
break continue
break:结束当前循环。
continue: 跳过当前循环一次。

break、continue还可以和标签一起配套使用。break与标签配套时,则结束该标签包含的所有语句;continue与标签配套时,则跳过该标签包含的所有语句。

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

关于println printprintf的区别

  • print--是函数,可以返回一个值,只能有一个参数,将它的参数显示在命令窗口,并将输出光标定位在所显示的最后一个字符之后。

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

  • printf--函数,把文字格式化以后输出,直接调用系统调用进行IO的,他是非缓冲的。

代码托管

代码量

感悟

学习一门程序语言最重要的是多练习,首先多打代码即使不理解不会,只能看着别人的代码打,看多了渐渐就会理解,至少明白这门语言的基本框架,怎么开头,怎么描述,套路是什么。后面随着课程渐渐就能完全理解代码的意思了。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 1/4 10/10
第二周 300/500 1/5 10/20
第三周
第四周
  • 计划学习时间:10小时

  • 实际学习时间:10小时

  • 改进情况:

有空多看看java实践教程学习视频

参考资料

posted @ 2018-03-11 11:37  Yhooyon  阅读(216)  评论(2编辑  收藏  举报