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

前言

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

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

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

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

教材学习内容总结

标识符与关键字

标识符

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

java关于标识符的规则:vim

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

    关键字

    关键词就是具备特定意义的单词,不能够做为标识符。
    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实践教程学习视频

参考资料

相关文章
相关标签/搜索