Java基础知识学习 第一天

  • 1. Java的历史
  • 2. Java的编译过程
  • 3. JDK的安装与配置
  • 4. Hello World
  • 5. 变量
  • 7. Java基本类型
  • 8. 运算符:
  • 8.1 算数运算符:+ 、 -、 * 、/ 、%(取模) 、++、 - -
  • 8.2 赋值运算符:= 、+= 、-= 、*= 、/= 、%=
  • 8.3 比较运算符:>、 <、 >=、 <=、 == 、!=
  • 8.4 位运算符:&、 | 、^
  • 8.5 逻辑运算符:&& 、&、 ||、 |
  • 8.6 位移运算符:>> 、<< 、 >>>
  • 8.7 条件运算符(三目运算符)
  • 9. 年龄判断程序



Java是服务器端的语言。包括(服务器端的开发、B/S服务器端开发、Tomcat服务器、MySql)

1. Java的历史

Java之父:詹姆斯·高斯林

1991年,高斯林和一群技术人员创建了一个名为Oak的项目,旨在开发运行于虚拟机的编程语言,同时允许程序在电视机机顶盒等多平台上运行。后来,这项工作就演变为Java。随着互联网的普及,尤其是网景开发的网页浏览器的面世,Java成为全球流行的开发语言。因此被人称作Java之父。

2. Java的编译过程

程序员编写的Java源文件(.java)首先要经过编译,生成所谓字节码文件(.class)

Java程序的运行需要JVM的支持。JVM是一个软件,安装在操作系统中,为字节码文件提供运行环境。

Java官方提供了针对不同平台的JVM软件,这些JVM遵循着相同的标准,只要是标准的.class文件,就可以在不同的JVM上运行,而且运行的效果相同。这样,就实现了所谓“一次编程到处使用”。

谁是java之父 被称为java之父的是_java

3. JDK的安装与配置

我是使用的JDK版本是9.0.4
直接启动下载下来的.exe文件。按照步骤安装下去

JDK安装完成后,在JDK安装路径下可以看到如下内容:
• bin目录:用于存放JDK工具命令
• jre目录:用于存放JDK所包含的JRE,其中包含有JVM和核心类库
• lib目录:用于存放JDK工具命令所对应的工具包

然后进行环境变量的配置
环境变量地址:我的电脑 -> 右键 -> 属性 -> 高级 -> 环境变量

Path中添加:C:\Program Files\Java\jdk-9.0.4\bin(默认存储路径)

JAVA_HOME中添加:C:\Program Files\Java\jdk-9.0.4

配置完成后启动"命令提示符(CMD)"

打开后输入java和javac命令。看到输出正常的提示信息就表示环境变量配置成功了

谁是java之父 被称为java之父的是_jdk_02

4. Hello World

第一个小程序Hello World。这里使用的是Eclipse 。
代码部分:

//public 修饰词 - 修饰的是class	一个文件中最多只能有一个public修饰的类
//class:类 - 文件
public class HelloWorld{
	//程序的入口  - 主方法main - 固定写法
	public static void main (String[] args){
		System.out.println("Hello World!");
	}
}

运行结果:

谁是java之父 被称为java之父的是_jdk_03

5. 变量

变量就是指代在内存中开辟的存储空间,用于存放运算过程中需要用到的数据。对于变量我们需要关注起如下几个方面:

• 变量的声明:用特定的语法声明一个变量,让运行环境为其分配空间;
• 变量的命名:变量需要有个见名知意的名字,而且要符合Java语言规范;
• 变量的初始化:变量声明后,要为其赋一个确定的初值后再使用;
• 变量的访问:可以对变量中的数据进行存取、操作,但必须和其类型匹配。

当需要使用一个变量时,必须对该变量进行声明;变量的声明包含两点:变量名和变量类型。Java语言语法规定,变量使用之前必须声明,否则会有编译错误。

变量的简单使用:

public class Demo01 {
	public static void main(String[] args) {
		// 声明 
		int age;
		// 初始化
		age = 10;
		age = 20;
 
		//age = 1.4; // 编译错误
		System.out.println(age);

		// 声明的同时初始化
		int year = 2020;
		System.out.println(year);

		// 变量不能重复声明
		//int age;

		int a, b = 1, c;
	}
}

变量的命名规则
• 可以由字母、数字、"_“和”$"符组成;
• 首字符不能以数字开头;
• Java大小写敏感,命名变量时需要注意;
• 不能使用Java保留字(一些Java语言规定好的,有特殊含义的字符),如:int、if、for、break等;
• 中文可以作为变量名,但不提倡使用。

7. Java基本类型

2种数据类型:基本数据类型引用类型

Java语言有8种基本数据类型,分别用于存储整数、浮点数、字符数据和布尔类型数据。

谁是java之父 被称为java之父的是_Java_04

byte:	1个字节 = 8位  	范围:-128~127
short:	2个字节 = 16位 	范围:-2^15 ~ 2^15-1
int:  	4个字节 = 32位  	范围:-2^31 ~ 2^31-1
long: 	8个字节 = 64位  	范围:-2^63 ~ 2^63-1

long通常用来表示时间。

char: 	2个字节 = 16位	范围:1111 1111 1111 1111 -> 0 ~ 2^16-1 = 65535		'\u0000' ~ '\uffff'

 使用科学计数法:
 
float:	4个字节 = 32位	范围:-2^128 ~ +2^128
	1位符号位  8位 指数位  23位 尾数位
	
double:8个字节 = 64位	范围:-2^1024 ~ +2^1024
	1位符号位  11位 指数位  52位 尾数位
	
	客观存在:精度缺失问题, 不能判断两个浮点数是否相等

boolean:只有2种结果 true、false

自动类型转换:

byte -> short -> int -> long -> float
 	         char->

Java虚拟机中存储基本数据类型的格式:二进制补码

2 4 8 16 32 64 128 256 512 1024

	 20 :    
	     0  001 0100
	-20:
	原码:1	001 0100 
	反码:1  110 1011
	补码:1  110 1100  - JVM
0 111 1111 -> 127 
补码:1 111 1111
反码:1 111 1110
原码:1 000 0001 -> -1

	1 111 1110
	1 111 1101
	1 000 0010 -> -2
最小值: 
	1 000 0000
	1 111 1111
	1 1 000 0000 -> -128

8. 运算符:

8.1 算数运算符:+ 、 -、 * 、/ 、%(取模) 、++、 - -

Java算数运算符除通常的加(+)、减(-)、乘(*)、除(/)之外,还包括取模运算(%)和自增(++)及自减(- -)运算。

1.	int a = 10, b = 20;
	2.	int c1 = a++; // 先将a的值赋给c1,然后a再自加
	3.	int c2 = ++b; // 先将b的值自加,然后再赋值给c2

8.2 赋值运算符:= 、+= 、-= 、*= 、/= 、%=

谁是java之父 被称为java之父的是_java_05

8.3 比较运算符:>、 <、 >=、 <=、 == 、!=

关系运算符用于判断数据之间的大小关系。包括大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(==)、不等于(!=)六个运算符。
关系运算的结果为boolean类型,如果关系成立为true,否则为false。

8.4 位运算符:&、 | 、^

二进制计算 2 ^ 4
 	0000 0010
 	0000 0100
 	0000 0110 = 6
 抑或:相同是0,不同是1

8.5 逻辑运算符:&& 、&、 ||、 |

逻辑运算建立在关系运算的基础之上,逻辑运算符包括:与(&&)、或(||)和非(!)。

参与逻辑运算的变量或表达式都是boolean类型,运算结果也是boolean类型。

谁是java之父 被称为java之父的是_jdk_06


&& 比 & 多了一个“短路”

短路:通过第一个表达式已经能确定整个结果,第二个表达式就跳过了

8.6 位移运算符:>> 、<< 、 >>>

>>>:无符号右移,永远补0。
 >>:补位是符号位,正数补0,负数补1。

8.7 条件运算符(三目运算符)

条件运算符又称“三目”运算符,其结构为:boolean表达式?表达式1:表达式2
条件运算符的规则如下:

• 先计算boolean表达式;
• 如果boolean表达式的值为true,整个表达式的值为表达式1的值;
• 如果boolean表达式的值为false,整个表达式的值为表达式2的值。

9. 年龄判断程序

本题中需要使用交互的方式判断年龄的范围:用户从控制台输入一个年龄,由程序判断该年龄是否在18~50之间。

import java.util.Scanner;

public class age {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scan = new Scanner(System.in);
		System.out.println("请输入年龄:(注:若在18-50之间则会显示True)");
		int age = scan.nextInt();
		System.out.println(age>=18&&age<=50);
	}
}

输出结果:

谁是java之父 被称为java之父的是_谁是java之父_07