前言

第二周算是正正式式的学习了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文件夹就可以管理自己的代码了。

教材学习内容总结

标识符与关键字

标识符

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

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实践教程学习视频

参考资料

20165231 2017-2018-2 《Java程序设计》第2周学习总结的更多相关文章

  1. 学号 20175212 《Java程序设计》第九周学习总结

    学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...

  2. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  3. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  4. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

  5. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  6. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

  7. 20145337 《Java程序设计》第九周学习总结

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

  8. 20145337 《Java程序设计》第二周学习总结

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

  9. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

  10. 《Java程序设计》第九周学习总结

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

随机推荐

  1. ps -ef | grep Linux进程查看命令

    我们常常会想查看Linux的一些进程,很自然地用到了: ps -ef | grep xxx ps: process show 展示进程 参数:1. e 显示所有程序. 2. f  显示UID,PPIP ...

  2. MAC操作系统使用小技巧

    MAC操作系统使用小技巧   作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.修改主机名名称 1>.修改主机名称 修改和查询的Ulinx命令如下: sudo scutil ...

  3. Linux系统IO分析工具之iotop常用参数介绍

      Linux系统IO分析工具之iotop常用参数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在一般运维工作中经常会遇到这么一个场景,服务器的IO负载很高(iostat中的 ...

  4. composer 更换国内镜像源

    使用 Composer 镜像加速有两种选项: 选项一:全局配置,这样所有项目都能惠及(推荐):选项二:单独项目配置: 选项一.全局配置(推荐) $ composer config -g repo.pa ...

  5. eclipse设置是否自动跳转切换到debug视图模式

    之前一直用公司二次封装的eclipse,这几天用原生态的eclipse,刚开始使用eclipse进行调试时,会自动跳转到debug视图.后来不小心关闭了,就不会自动切换到debug视图. 这个小问题之 ...

  6. Web API中的Help Page

    一.自动创建带帮助的WebAPI 第一步  创建项目的时候选择WebAPI 如下图所示,生成的项目会自动生成帮助文档 第二步  设置调用XML文档的代码 第三步 设置项目注释XML文档生成目录 项目— ...

  7. golang实现tcp编程

    实现简单的tcp服务 package main import ( "fmt" "net" ) func main() { fmt.Println("服 ...

  8. 055、创建macvlan网络 (2019-03-22 周五)

    参考https://www.cnblogs.com/CloudMan6/p/7364332.html     创建macvlan网络,需要指定使用哪块物理网卡进行通信   -o parent=ens1 ...

  9. maven项目配置框架

    任何一个maven项目都会继承一个默认的父pom配置:Super POM,详见:https://maven.apache.org/guides/introduction/introduction-to ...

  10. Tooltip导致的无法访问已释放对象

    最近C#项目中遇到了一个无法访问已释放对象问题,经过反复测试,最终发现问题出在控件Tootip上,因为tootip内部有一个定时器,如果在窗口销毁时,鼠标移动到控件上恰好产生了一个tooltip,就会 ...