Time:7.3 ~ 7.9
Content:再次认识Java,熟悉环境配置,HelloWorld 基本结构,了解开发工具 eclipse,标识符命名规范,基本数据类型,数据类型之间的转换,运算符及优先级,流程控制 if-else 等。
Declaration:第一周相对比较轻松,本来打算两周做一次总结的,但是感觉一周一小节更有效果,我是根据网上的课程视频进行复习的,本周复习内容比较基础,但是一些细节部分也不能忽略,以下将我本周的复习笔记加以整理。本周总结主要偏重语言规则的内容。
1、什么是计算机
- 一种能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。由硬件和软件所组成。
硬件:在软件的配合下完成输入、处理、储存、和输出4个操作步骤。根据不同功能可分为5类:
① 输出设备(显示器、打印机、音箱等)
② 输入设备(鼠标、键盘、摄像头等)
③ 中央处理器(CPU)(核心)
④ 储存器(内存、硬盘、光盘、U盘以及储存卡等)
⑤ 主板
软件:按照一定顺序组织的计算机数据与指令的集合。软件 = 数据+指令+文档
分类:系统软件(Windows、Linux等),应用软件(QQ、WPS等)。
2、认识java
三大平台:J2SE、J2EE、J2ME
J2SE(JavaSE):所有Java技术的基础。
J2EE:着重于电子商务网站, 手机应用程序的开发。
J2ME:主要针对嵌入式系统,包括手机、PDA等。关键词解析:
跨平台:不依赖于软件系统,也不依赖于硬件环境。
JVM:Java虚拟机,相当于模拟的计算机(软件+硬件)。
JDK:Java核心,包含Java的运行环境,Java工具及Java的基础类库 为程序员提供的一个开发工具包。
JRE:Java的运行环境。
JDK包含JRE,JRE包含JVM
3、安装java环境(可以戳此链接下载JDK)
JDK版本:jdk6、jdk7、jdk8
jdk和jre环境安装步骤:
① 双击安装包,直接傻瓜式地安装(下一步 下一步 ...完成)
② 更改路径:
1. 如果更改路径的话 保证两个jdk和jre环境在同一个路径
2. 不要出现中文或者空格③ 环境配置:
JAVA_HOME:jdk安装路径
PATH:JDK下的\bin目录,为了让控制台在任意的目录下都可以找到java的开发工具
CLASSPATH:设置class文件所在的路径信息
注意:1. “.”代表当前目录“;”代表分割号
2. 从jdk6开始可以不配置④ 配置环境详细步骤:
桌面-计算机-右击属性-高级系统设置-高级-环境变量
用户变量:只能对当前登录的用户有效
系统变量:所有登录电脑用户均有效
JAVA_HOME:新建
PATH:编辑 放置到最后 加分号 JDK下的\bin目录
path:方式1:绝对路径 C:\Program Files (x86)\Java\jdk1.8.0_101\bin
方式2:相对路径 %JAVA_HOME%\bin
注意:1. 环境变量名不区分大小写
2. 多个环境之间用分号(英文状态下)分割开即可
4、java环境的测试
开始 --> cmd回车 --> 进入dos界面 --> 输入相关命令
javac:编译环境
java:运行环境
java -version:输出打印java的版本信息测试过程中出现:XXX不是内部或外部指令
解决方法:1、检查java环境安装没有
2、环境配置是否正确,如果不正确更改正确后需要重启dos
3、配置是否出现了中文的分号或者逗号等
5、第一个java程序
如何显示文件后缀名:
任意打开一个盘 --> 组织 --> 文件夹或搜索选项 --> 查看 --> 去掉隐藏已知文件扩展名前的对勾
新建文件记事本,把后缀名改成.java文件结构体:
注意点:
1、加入适当的空格或者换行,优化代码
2、java程序如果进行更改必须进行重新编译
3、java的类名和文件名保持一致
4、java中严格区分大小写
5、println和print,如果加ln会进行换行,加之后对当前行进行处理
6、java每句结束之后需要加英文状态下的分号
7、java类中,System首字母大写 String 首字母大写
8、java文件中可以有多个类,但是只能有一个public修饰的类,并且public修饰的类
9、要和文件名保持一致,不能有重名类信息java 代码编译执行过程:
先进入dos
1、切换盘符d: D:\Demo.java
2、javac 类名.java
作用:编译成类名.java
到类名.class
3、java 类名
作用:打印内容到控制台
6、eclipse开发工具应用(戳此链接下载)
开发工具,是一个开放源代码的、基于Java的可拓展开发平台。
必须先安装jdk,jdk1.8最合适
安装版:下一步
免安装:解压后可以使用(英文版)
汉化包(不建议)目的:提高代码开发效率
(说明:eclipse完全免费,和IDEA相比,虽然功能有些欠缺,但是感觉更精简,更适合练习基础语法)
7、java关键字
java中有特殊意义的单词就是java的关键字
关键字不能作为标识符使用标识符和保留字有51+2 个(48个关键字,3个字面量,2个保留字)
其中两个保留字是goto和const,其他关键字如:class (类关键字)、abstract(修饰符关键字)、void(返回类型关键字)等。注意:① 所有的关键字小写;
② true、false 和 null 等都是Java关键字,属于字面量;
③ goto 和 const 虽然从未使用,但也作被为Java关键字保留;保留字:有特殊含义的标识符,后续有可能发展成关键字(goto和const)
8、java标识符
在java中为类、方法、变量、包等起的名字叫做标识符。
组成:字母(a-z,A-Z)、数字 、下划线、$ 组成,数字不能为开头。还可以包含其他符号,如¥、π、ω等,支持中文,但不建议。
规范:包名:所有的字母全小写 eg:com
类名和接口名:所有的单词首字母大写 eg:TestDemo
方法名和变量名:驼峰式命名规则 所有的单词除了第一个单词首字母小写,其他单词首字母大写 eg:testDemo
常量名称:所有的单词都大写,单词之间用下划线分割 eg:TEST_DEMO注意点:
1、关键字不能为标识符
2、java中严格区分大小写
3、标识符长度不限制,可以任意长
4、由字母(a-z,A-Z)、数字 、下划线、$ 组成,数字不能为开头
5、java中文、日文都可以作为标识符,但是不建议使用
6、所有的标识符建议做到见名知意
9、java 注释
目的:提高代码的可读性
java注释主要种类:
1、单行注释:以//开始对当前行起作用 ;
2、多行注释:以/开始以/结束,对当前范围内的代码说明起作用,可以用在单行上,但不能嵌套使用;
3、文档注释:主要用在类和方法上 ,也可以用在单行或者多行上,但不能嵌套使用;生成对应的api文档方式(仅作了解):
先进入dos窗口
1、切换盘符
2、javadoc -d 放置到的文件名名称 类名.java
(这是一个新技能)
10、包
包:相当于文件夹,避免重复的类
作用:管理文件信息如何编译带包的java类信息:
1、切换盘符到具体类所在的路径下
2、javac -d . 类名.java
3、java 包名.类名 执行java代码输出打印结果
11、进制之间的转换
进制:一种记数方式,用有限的符号或者数字代替无限的内容
二进制:0-1
八进制:0-7
十进制:0-9
十六进制:0-9 A,B,C,D,E,F
10 ,11,12,13,14,15进制转换:
十进制转二进制:使用十进制不断除以2,直到商为0,从为止下到上取余数得到的结果就是二进制
二进制转十进制:使用二进制每一位乘以2的n次方,n从0开始,然后相加求和,得到的结果即为十进制
12、变量 常量
变量定义:用于存储可变数据的容器。
三个要素:1、变量必须有大小和数据类型
2、必须有名字
3、存储为一个可变的值信息变量:本身为一个容器,主要存储内容是可变的
常量:在程序执行过程中不会发生变化的信息
定义变量的结构体:数据类型 变量名=值;
特点:
1、必须有大小
2、存的是一个可变的数据
3、变量必须有名字数据类型:基本数据类型:
int i = 5;
引用数据类型:Integer j = new Integer(10);
13、java基本数据类型的解析
- 基本数据类型(内置数据类型)
4类八种:
整数类型:int byte short long 默认int
浮点数类型:float double 默认double 小数
布尔类型:boolean
字符类型:char
1、字面值赋值
2、编码赋值(ASCII 码)
3、unicode赋值注意点:
char类型字面值赋值,只能是单引号括上,里面是一个字母或者汉字。引用数据类型
包含String、数组等。
定义:需要用双引号括上,里面可以放任意多的字母或者汉字。
eg:String name="zhangsan";
注意点:
1、定义浮点数float 值后面加大小写的F
2、double类型后缀加大小写D,或者不加都可以
3、long类型后缀加L,建议加大写
14、基本数据类型格式
基本格式:
数据类型 变量名=值;
数据类型 变量名1=值,变量名2=值2;
数据类型 变量名1,变量名2;
数据类型 变量名1=值;
数据类型 变量名2=值;
局部变量:在方法内定义的变量,必须赋值后才能使用。
15、数据类型之间的转换
1)自动转换(隐式转换):由小数据到大数据直接的转换叫做自动转换。
eg :byte - int - long - float - double
注意点:
1、小或者大指的是数据范围的大小
2、boolean 类型不能和其他类型进行转换
关于数据范围可参考下图:2)强制转换(显式转换):由大数据类型到小数据类型的转换,需要强制转换
格式:小数据类型 变量名=(小数据类型)变量名;
注意点:
1、大数据类型对应的值信息要在小数据类型表示的范围内
2、由浮点数转整数,数据精度有可能损失
3、byte char short类型进行运算的时候需要强转,因为默认的是int类型,转成int类型后进行计算
4、两个不同数据类型进行计算的时候,结果取决于大的数据类型
16、运算符
- 1> 算术运算符:
+、-、*、/、%、++、--
在java中:
"+"表示:1、表示一个正数 ,这时候+可以省略不写
2、连接符,主要用于和字符串拼接使用
3、算术运算符,主要表示两个数或者多个数字进行相加运算,求和"-"表示:1、表示一个负数
2、表示算术运算符中求差运算"%"表示:求余数,求模
注意:在java中进行求余数的时候结果的正负取决于被除数,与除数无关。"++"、"--"
单目运算符(也叫自增自减运算符),只有一个操作数。
++:相当于每次加上1
++在前:先计算,后使用
++在后:先使用后计算,下次使用发生变化--:相当于每次操作数减去1
(其他用法类似++)- 2> 赋值运算符:
=、+=、-+、*=、/=、%=
=: 赋值
+=:运算的时候赋值 a+=b 等同于 a=a+b
-=: a-=b 等同于a=a-b
- 3> 比较运算符:
主要用在判断语句中,结果只能为boolean类型的值,即只能为 true 或者 false。
分类:
==、!=、>、<、>= <=
=和==的区别:
=:赋值运算符,值信息
==:比较运算符,得出 boolean 值
!=:不等于- 4> 逻辑运算符:boolean
&&、||、!
&&:and(并且)多个条件都成立时才成立
||:or(或者)只要有一个条件成立就成立
!:取反 true 为 false ,false 为 true
- 5> 位运算符:
主要用于二进制运算
&、|、^、~
&:全1为1,否则为0
|:有1为1,否则为0
^:相同为0,否则为1
~:1为0,0为1
注意:
&和&&区别:结果相同
不同点:&&:短路与,一旦左边的条件不满足,直接返回结果
&:位与,执行完判断后返回结果
&&效率相对高于&,前提是第一个条件不满足
|和||区别:和上面类似
||:第一条件满足,直接返回结果- 6> 移位运算符:
主要用于二进制运算
<<、>>、>>>
<<
:左移 左移1位相当于乘以2,左移n位,相当于乘以2的n次方>>
:右移 右移1位相当于除以2,右移n位,相当于除以2的n次方>>>
:无符号右移
当是正数的时候结果一样
当是负数的时候,符号位统一补0
- 7> 三元运算符
三元运算符(XXX ? XXX :XXX)可以用来代替if-else结构。但它最终会生成一个值,表达式为:
布尔表达式?表达式1:表达达2;
若布尔表达式为真(true),就计算表达式1;否则计算表达式2。
- 注意点:三元表达式可以嵌套使用
缺点:结构复杂,不建议使用
17、运算符优先级:
18、流程控制
- 顺序结构
- 选择结构(分支结构)
- 循环结构
流程控制:
1、顺序结构:从上到下依次执行
2、选择结构(分支结构):根据不同的判断结构进入到不同的代码段
① if else
② switch case- if相关的几种结构体:
① 主要用在一种情况的输出:
if (判断语句) {
符合条件输出的结果
}
② 主要用在两种情况的输出(类似于三元运算符):
if (判断表达式) {
符合条件输出的代码
} else {
不符合条件输出的代码
}
③ 主要用在多种情况的输出:
if (条件表达式1) {
满足条件1的输出内容
} else if (条件表达式2) {
满足条件2的输出内容
} else if (条件表达式3) {
满足条件3的输出内容
} ... { ...
} else {
都不满足的输出内容
}
注意点:
1、if可以单独使用,else不能单独使用
2、if()不能有分号
3、if或者else只有一句输出的时候可以省略大括号,如果多条输出不能省略
4、if或者else中可以继续嵌套if或者else语句,嵌套次数不限制3、循环结构:
① while 语句
② for 语句
③ do - while
感想:
周筠老师写过一篇文章:保持较低的动力,每天进步一点点
在我跟着网上视频进行学习的时候,进了对应的一个学习群,我发现一起学习 Java 的人有的是大学生,有的是中学生,但是大部分人已经处于工作状态。他们经常会遇到一些加班或者感情上的问题,但是他们每天依然在挤时间学习 Java。对于他们来说,每天学习的时间必定比我们少,但是仍然有一部分人能够坚持,每天按时完成视频中布置的作业,按时总结笔记;还有些大学生,Java 基础比我好很多,但是仍然在坚持弥补基础。这样看来,我有什么理由不去和他们一起坚持呢。的确,第一周的学习状态比较好,在群里也算是掌握情况、作业完成情况比较好的一类人,我会继续保持这种低动力,每周坚持做总结,必定会有意外的收获!
本周学习内容比较基础,没有遇到逻辑比较复杂的程序,所以就不贴代码了。我在练习基础语法时,也在尝试着用英文写注释,这是一个耗时但是值得坚持的好习惯。
之前因为航班取消而在学校苦苦等待的我,今天再次踏上了回家的路途。。。φ(゜▽゜*)♪
2017.7.11