java入门知识要点
一、计算机基础知识
1.1 二进制
计算机中的数据不同于人们生活中的数据,人们生活采用十进制数,而计算机中全部采用二进制数表示,它只包含
0、1两个数,逢二进一,1+1=10。每一个0或者每一个1,叫做一个bit(比特)。
下面了解一下十进制和二进制数据之间的转换计算。
- 十进制数据转成二进制数据:使用除以2获取余数的方式。
- 二进制数据转成十进制数据:使用8421编码的方式
小贴士:
二进制数系统中,每个0或1就是一个位,叫做bit(比特)。
1.2 字节
字节是我们常见的计算机中最小存储单元。计算机存储任何的数据,都是以字节的形式存储,右键点击文件属性,我们可以查看文件的字节大小。
8个bit(二进制位) 0000-0000表示为1个字节,写成1 byte或者1 B。
- 8 bit = 1 B
- 1024 B =1 KB
- 1024 KB =1 MB
- 1024 MB =1 GB
- 1024 GB = 1 TB
二、Java语言开发环境搭建
2.1 Java虚拟机——JVM
- JVM(Java Virtual Machine ):Java虚拟机,简称JVM,是运行所有Java程序的假想计算机,是Java程序的运行环境,是Java 最具吸引力的特性之一。我们编写的Java代码,都运行在 JVM 之上。
- 跨平台:任何软件的运行,都必须要运行在操作系统之上,而我们用Java编写的软件可以运行在任何的操作系统上,这个特性称为Java语言的跨平台特性。该特性是由JVM实现的,我们编写的程序运行在JVM上,而JVM运行在操作系统上。
2.2 JRE 和 JDK
- JRE (Java Runtime Environment) :是Java程序的运行时环境,包含 JVM 和运行时所需要的 核心类库 。
- JDK (Java Development Kit):是Java程序开发工具包,包含 JRE 和开发人员使用的工具。
我们想要运行一个已有的Java程序,那么只需安装 JRE 即可。
我们想要开发一个全新的Java程序,那么必须安装 JDK 。
小贴士:三者关系: JDK > JRE > JVM
JDK中包含JRE,在JDK的安装目录下有一个名为jre的目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和起来就称为jre。
JVM = bin目录
lib表示JVM工作所需要的类库
也就是:JRE = lib + bin
JDK = JRE + JAVA的开发工具(javac.exe,java.exe,javadoc.exe)
2.3 jdk的安装和环境变量的配置(以jdk9为例)
- jdk9的安装
- JAVA_HOME环境变量的配置
配置环境变量作用
开发Java程序,需要使用JDK中提供的工具,工具在JDK9安装目录的 bin 目录下。
配置环境变量步骤
Windows 7,8版本
- 计算机鼠标右键,选择 属性
- 选择 高级系统设置
- 高级 选项卡,点击 环境变量
- 点击 新建 ,创建新的环境变量
- 变量名输入 JAVA_HOME ,变量值输入JDK9的安装目录 c:\Java9\jdk-9.0.1
- 选中 Path 环境变量, 双击 或者 点击编辑
- 在变量值的最前面,键入 %JAVA_HOME%\bin; 分号必须要写,必须是英文格式。
- 环境变量配置完成,重新开启DOS命令行,在任意目录下输入 javac 命令,运行成功。
Windows 10 版本
- 文件资源管理器 --> 此电脑鼠标右键 --> 选择 属性
- 选择 高级系统设置 --> 选择 环境变量
- 点击下方系统变量的 新建 ,创建新的环境变量,变量名输入 JAVA_HOME ,变量值输入JDK9的安装目录D:\02_DevelopTools\Java\jdk-9.0.1
- 选中 Path 环境变量, 双击 或者 点击编辑
- 点击 新建 ,键入 %JAVA_HOME%\bin ,必须是英文格式。选中该行,上移到最上方,点击确定
- 环境变量配置完成,重新开启DOS命令行,在任意目录下输入 javac 命令。
三、HelloWorld入门程序相关知识点
3.1 程序开发步骤说明
开发环境已经搭建完毕,可以开发我们第一个Java程序了。
Java程序开发三步骤:编写、编译、运行。
3.2 编写Java源程序
-
在 d:\day01 目录下新建文本文件,完整的文件名修改为 HelloWorld.java ,其中文件名为 HelloWorld ,后缀名必须为 .java 。
-
用记事本打开
使用notepad++或者记事本软件。 -
在文件中键入文本并保存,代码如下:
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } }
文件名必须是 HelloWorld ,保证文件名和类的名字是一致的,注意大小写。
每个字母和符号必须与示例代码一模一样。第一个 HelloWord 源程序就编写完成了,但是这个文件是程序员编写的,JVM是看不懂的,也就不能运行,因此我们必须将编写好的 Java源文件 编译成JVM可以看懂的 字节码文件 。
3.3 编译Java源文件
在DOS命令行中,进入Java源文件的目录,使用 javac 命令进行编译。
命令:
javac Java源文件名.后缀名
例如:
javac HelloWorld.java
3.4 运行Java程序
在DOS命令行中,进入Java源文件的目录,使用 java 命令进行运行。
命令:
java 类名字
例如:
java HelloWorld
3.5 入门程序说明
- 编译:是指将我们编写的Java源文件翻译成JVM认识的class文件,在这个过程中, javac 编译器会检查我们所写的程序是否有错误,有错误就会提示出来,如果没有错误就会编译成功。
- 运行:是指将 class文件 交给JVM去运行,此时JVM就会去执行我们编写的程序了。
关于main方法
main方法:称为主方法。写法是固定格式不可以更改。main方法是程序的入口点或起始点,无论我们编写多少程序,JVM在运行的时候,都会从main方法这里开始执行。
3.6 数据类型
数据类型 | 所占空间(字节) | 默认值 | 备注 |
---|---|---|---|
byte | 1 | 0 | 字节型整数 |
short | 2 | 0 | 短整型 |
char | 2 | 空格 | char存放一个字符,值一定在‘’单引号中 一个字符:一个字母,一个汉字,一个数字(0~9),一个转义字符 |
int | 4 | 0 | 整型,Java中默认的整数类型 |
float | 4 | 0.0F/0.0f/0.0 | 单精度浮点型 |
double | 8 | 0.0 | 双精度浮点型,Java中默认的浮点型,即小数类型 |
long | 8 | 0L/0l/0 | Java中时间用毫秒表示的时候常用long类型 |
boolean | 1 | false | 判断常用的数据类型,只有false和true两个值 |
注:
1.自转(由小到大)
byte
short——>int——>long——>float——>double
char
2.常用的assii码:
a:97
A:65
0:48
3.java中变量表示一个数据的存储空间:
数据类型:标明该变量存储的什么类型的数据
变量名:用来找到该变量
值:表示该变量中到底存储了什么数据
4.在char类型和int类型计算的过程中,char类型的字符先查询编码表,得到97,再和1求和,结果为98。char类型提升为了int类型。char类型内存2个字节,int类型内存4个字节。
如下:
public static void main(String[] args) {
//字符类型变量
char c = ‘a’;
int i = 1;
//字符类型和int类型计算
System.out.println(c+i);//输出结果是98
}
四、运算符
4.1 作用:用来操作变量的
4.2 表达式含义:通过运算符将多个变量操作起来的式子
4.3 分类:
-
赋值运算符(5个):= 、+=、-=、*=、/=
-
算术运算符(7个):+、-、*、/、%、++、–
+(加号):如果操作的变量都是基本数据类型(除布尔类型以外)做的都是和运算,如果操作的变量中至少有一个是引用数据类型,则从该引用数据类型开始做连接的操作。
int a = 15; int b = 13; String c = "字符串"; int d = 25; System.out.println(a+b+c);//28字符串 System.out.println(a+b+c+d);//28字符串25 System.out.println(c+a+b+d);//除数151325
/(除号):如果两个相同类型的数据相除结果还是该类型的数据
5/2——>2 5/2.0——>2.5
%(取余):
1.只对整型数据有意义
2.余数的正负只与被除数有关例如: -5%2——>-1 5%-2——>1 -5%-2——>-1
++:在自身原有值的基础上+1,等效于+=1
1.如果++作为单条语句的编写,x++与++x没有任何的区别例如: 1.double x=3.6; x++; System.out.println(x); 2.double y=3.6; ++y; System.out.println(y);
2.如果作为组合语句(两条或者两条以上的代码)的操作:
- x++:先执行操作,再自身+1
例如: double x=3.6; System.out.println(x++);//3.6 double y=x; System.out.println(y);//4.6
- ++x:先自身+1,在执行操作
double x = 3.6; System.out.println(++x);//4.6 double y = x; System.out.println(y);//4.6
–:在自身原有值的基础上-1,等效于-=1,用法同++
- 关系(比较)运算符:==、!=、>、>=、<、<=
1.> 、> =、<、<=:只对基本数据类型(除布尔数据以外)数据有比较意义
2.==、!=:既能用于基本数据类型(包括布尔类型),又能作用于引用数据类型(引用数据类型比较的地址)
- 逻辑运算符(3个):!、&&、||
!:逻辑非(取反)
&&:逻辑与(短路与):条件同时满足时才能执行
||:逻辑或(短路或):条件一个满足时就能执行
短路特点:符号左边是false,右边不再运算
- 条件运算符(三元(三目)运算符):
格式:
(任意关系表达式或者逻辑表达式)?结果1:结果2
括号里面表达式结果是boolean类型的:
布尔类型表达式结果是true,三元运算符整体结果为结果1。
布尔类型表达式结果是false,三元运算符整体结果为结果2。
等效于简单的if…else…语句
4.4 运算符的优先级
从到到底排序
运算符 | 优先级递减 |
---|---|
( ) | 高 |
++ 、 - -、! | 。 |
算术运算符 | 。 |
比较运算符 | 。 |
逻辑运算符 | 。 |
三目运算符 | 。 |
赋值运算符 | 低 |
补充:
变量的命名规范
1.只能用字母或者_或者$开头
2.余下部分可以是字母或者_或者数字,长度不宜过长,有意义,千万不能出现特殊的字符,如空格
运算时注意数据之间的自动转换
例如:
x=3.0;
y=5.0;
z=7;
则y*=++z/- - x;
解析:
y*=++7/- -3.0
y*=8/2.0
y=y* 4.0
y=5.0*4.0
y=20.0
注意下面这道题,数据自动转换常考: