Java_Day_1学习笔记
学前简述
学习方法
为什么学?
- 技术控?
- 项目需求?
- 作业要求?
方法?
- 现有技术能解决?
- 现有技术能完美解决?
新技术和知识点?
- 根据需求有针对点的学习
怎么学?
基本原理和基本语法(不考虑细节,快速过一遍),不要先考虑细节,因为细节永无止境
快速入门(基本程序)
熟悉后,再考虑细节
历史信息
1995年,Java诞生。
目前属于甲骨文公司所有
目前用的最多的版本是8和11
语言特点
面对对象(oop)
可移植性高
解释性语言
解释性语言:编译后的程序需要解释器执行,如python、Java、PHP。
编译性语言:编译后的程序可以直接执行,如C/C++
开发工具
软件
- editplus、 notepad++
- Sublime Text
- IDEA
- eclipse
选择
初学者建议用集成度低的软件,培养代码感。例如Sublime。
做项目的时候,建议使用IDEA与eclipse这些集成度高的软件,会更方便进行项目开发。
运行机制
Java能运行起来全靠各个平台的JVM(Java虚拟机)
JVM特点
- 包括在JDK中,通过安装不同版本的JDK来安装
- 不同的OS具有不同的JVM
- JVM为Java程序的运行提供透明服务,即程序编译后,运行的时候屏蔽了不同操作系统的差异性。
JDK(Java开发工具)
- 包括JRE和Java开发工具
- 开发者使用,编译程序
JRE(Java运行环境)
包括JVM和Java核心类库
用户端使用,运行程序
配置环境变量
原因
- 看错误现象
- 当前执行程序的目录下没有可供使用的编译器,OS会去查询path路径。为了能够最大效率的使用Java,所以要配置环境变量。
用户变量只针对某一个用户,这里就是只针对zpx用户,而系统变量是针对所有用户,即所有用户都可以用。如果电脑只供一个用户使用,其实两者就没有差别了。
Java入门
程序示例
以下是一个经典的Hello程序代码的示例
1 | //创建一个public公有类Hello |
在编译之前一定要改变程序的编码格式,因为cmd默认编译程序是gbk编码,但是有中文的代码一般是utf-8格式,所以在编写完程序后,一定记得要改变程序的编码格式。
之后还要进行程序的编译和执行,语句及效果如下图所示:
1 | flowchart LR |
注意事项
一个源文件只能有一个public类,其他类不限制;
并且如果源文件中有一个public类,则源文件必须以该类命名。在编译后,每一个类都会生成一个.class文件。
Java程序入口是main()方法,一般我们规定是
1
public static void main(String[] args){}
main()方法也可以在非public类中
转义字符
字符 | 功能 |
---|---|
\t | 制表符 |
\n | 换行符 |
\\ | 输出“\”(类似于计网数据链路层) |
\r | 回车 |
==注意:==换行是另起一行,回车是同一行从头开始。
要学会去看报错信息,一般情况下报错信息有助于我们修改代码,完善代码。
注释
- 单行注释:利用“//”后面跟的是注释
- 多行注释:“/**/“,在两个*中间夹的就是注释,这个可以用作多行
- 文档注释:
文档注释的用处很多,这个在之后可以多加留心注意。
代码规范
类、方法注释用javadoc方式
适当的缩进和空格
实际工作中的文件格式是utf-8
每行最多不要超过80字符
代码编写符合==次行风格==(笔者推荐,笔者常用)和==行尾风格==
数据类型
变量
用于存储数据的命名存储位置,每个变量都有一个特定的类型。类型决定了变量能存储的种类以及该数据能进行的操作
加运算
下边是进行加运算时候的代码及结果
数据类型
基本数据类型
数值型
- 整数类型(byte[1],short[4],int[4],long[8])
- 浮点类型(float[4],double[8])
字符型(char[2])
布尔型(boolean[1])
引用数据类型
- 类
- 接口
- 数组
整数类型
类型 | 字节 | 范围 |
---|---|---|
byte | 1 | -128~127 |
short | 4 | -(215)~215-1 |
int | 4 | -(231)~231-1 |
long | 8 | -(263)~263-1 |
- Java的数据类型长度不受OS的影响,保持了Java的可移植性
- 除非不得已,一般用int
- 1byte = 8bit
浮点型
类型 | 存储空间 | 范围 |
---|---|---|
单精度float | 4字节 | -3.403E38 ~ 3.403E38 |
双精度double | 8字节 | -1.798E308 ~ 1.798E308 |
浮点数 = 符号位 + 阶码(指数) + 尾数(精度)
- 不受OS影响,存储空间固定
- Java默认浮点型常量是double,声明float类型时,常量后必须跟‘f’或者’F‘
1 | //创建一个公有类 |
- 2.7与8.1/3相近,并不是相等。
字符型
- char的本质是整数,整数代表的Unicode码(统一编码表)
- 用单引号包括
- char可以运算
- 不同规则的编码格式,对文件大小有一定的影响;不同编码的文件进行转换会出现乱码的情况
如gbk(字母1字节,汉字2字节), utf-8(字母1字节,汉字3字节), unicode(字母与汉字均为2字节), big5(存放繁体字)
布尔型
- 只有true和false两个值
- 不能用非0或0表示布尔类型(C可以)
类型转换
类型==自动==转换
- 低精度能向高精度进行自动转换
- 当有多个数据类型进行运算的时候,系统首先将所有数据转换为存储空间最大的数据类型
- (byte,short)无法与char互相转换
- boolean不参与类型自动转换
- short, char, byte参与的运算会自动转换为int类型
==强制==转换
- 高精度转为低精度,会造成数据的损失或溢出
- 强转符号只对最近的数据有效
练习题
base2string
- 基本数据类型与字符串进行转换的时候用的是各个数据类的方法
作业小结
1 | // HomeWork4.java |