Java SE基础知识——(发展历程、变量、基本数据类型)

热门编程语言

	C++ C C# PYTHON PHP JAVA

java发展历程

	91年 - 实验室
	93年 - 开始面向市场
	95年 - 广泛应用
	98年 - 互联网时代的开端
	javaSE javaEE javaME

java课程体系

javaWeb开发:
web前端:html CSS JS
服务器端:(处理数据)
	Tomcat weblogic
数据库:
	mysql sqlserver oracle db2

框架:
	SSM: SpringMVC + Spring + MyBatis

微服务开发:
	Spring Boot
	Spring Cloud

分布式架构:
	Dubbo

世界编程语言排行榜:Tiobe

Java环境配置

	跨平台 
		操作系统:
		windows Linux(开源/安全) Mac OS

		.c/.h     .java
		字节码文件(.class)
	JVM : java vritual Mahine
			java虚拟机
			运行字节码文件的软件
	JRE :java Runtime Environment
		java的运行环境(JVM + Library(类库 - jar包))

	JDK: java Development Kit
		(JRE + Tools)
		java的开发软件

配置环境变量:
	配置环境变量就是配置操作系统中的系统工具(命令)

	步骤:
		我的电脑 -> 右键 -> 属性 -> 高级系统设置 -> 环境变量 -> Path -> 双击Path修改

		正规写法:
			系统变量 -> 新建变量
			变量名:JAVA_HOME
			值:jdk的根目录(带有bin的目录)
			例如:C:\Program Files\Java\jdk-9.0.4

			再去配置Path
			%JAVA_HOME%\bin

	java中的命令[不是内部或外部可执行命令]
		javac - 编译工具
		java - 运行工具


	IDE:集成开发工具
		eclipse
		IDEA
		VsCode
		NextBeans

	java工程
		src: source - 源,源代码 - java代码
		JRE System Library: 类库

java变量

概念:

	jvm内存中开辟一块空间,用来存储数据的

使用变量的步骤:

	1.声明/定义 - 类型 + 变量名
	2.初始化 - 第一次赋值

变量的命名规则:

	1.变量名只能出现: 英文 + 数字 + _ + $
	2.不能以数字开头
	3.变量:可读性要好, 首字母要小写,第二个单词开始首字母大写 - 小驼峰命名法
	4.类名的命名规则:首字母要大写,第二个单词开始首字母大写 - 驼峰命名法

eg:

*package javaSEDay01;
/*
 * java变量
 */
public class Demo01 {
	public static void main(String[] args) {
		//声明变量
		int age;
		age = 10;//初始化
		age = 20;//再次赋值
		System.out.println(age);
		
		//age = 1.4;//编译错误
		
		//声明的同时初始化
		int age2 = 2200;
	}
}*

数据类型

	基本数据类型 + 引用数据类型
	
	进制方式:八进制 十六进制 十进制
		二进制:二进制中只能存数字0 和 1
			有符号位:
				0表示正数
				1表示负数
	
		原码:符号位表示正数或者负数,剩下的数字位表示数字本身
		反码:负数的反码,符号位不变,其他位按位取反
			正数的反码和原码一样
	
		补码:负数的补码,符号位不变,其他位按位取反再加1(反码+1)
			正数的补码和原码一样
	
				原码		补码		反码
		正数   	正数     正数    正数
		负数		负数     反码+1  符号位不变,其他位按位取反
	
	
		补码:1 111 1111
		反码:1 111 1110
		原码:1 000 0001 -> -1
	
		-2:
		原码:1 000 0010
		反码:1 111 1101
		补码:1 111 1110 -> -2
	
	
		最小值:
		补码:     1 000 0000
		反码:借位 1  111 1111
		原码:借位 1 1000 0000 -> -128

8大基本数据类型:

	整型:byte short int long
	浮点型:float double
	字符型:char
	布尔类型:boolean

	基本数据类型都是以二进制的方式进行存储,空间大小根据类型决定

整型

		整数: 正数和负数
		1 * 2^0 = 1
		1 * 2^1 = 2
		1 * 2^2 = 4
		... 
		1 2 4 8 16 32 64 128 256 512 1024

		1字节 = 8位

		byte: 8位/1字节 - 存8个二进制的数
			最大值:
				原码:0 111 1111  -> 2^7-1= 127  2的n次方-1
				反码:0 000 0000
				补码:0 000 0001 

			取值范围: -128 ~ 127

		short:16位/2字节 - 存16个二进制的数
			取值范围: -2^15 ~ 2^15-1
		x
		int:32位/4字节 - 存32个二进制的数
			取值范围: -2^31 ~ 2^31-1
			int是整型的字面量/默认量

		long:64位/8字节 - 存64分二进制的数
			取值范围: -2^63 ~ 2^63-1
			long类型一般用来表示时间
			使用时,必须用L/l标记是long类型
			格林威治时间 long = 0; -> 1970年1月1日 00:00:00
	整型:
		byte -> short -> int -> long -> float -> double
				char

eg:

package javaSEDay01;
/*
 * 	基本数据类型 之 整型
 */
public class DemoType02 {
	public static void main(String[] args) {
		byte b = 127;
		//byte b = 128;//编译错误,取值只能取到范围之内
		
		short s = 30000;
		
		//字面默认量是int类型
		int i = 2100000000;
		//赋值 : 从右往左
		i = b;//自动/隐式类型转换 小范围赋值给大范围 允许的
		//大范围赋值给小范围
		b = (byte)i;//溢出,保留的第八位 - 可以强制类型转换
		
		//必须使用L/l标记是long类型
		long l = 21000000000L;
		System.out.println(Long.MAX_VALUE/1000/365/60/60/24);
	}

}

浮点型:

		科学计数法:-3.40E+38 ~ +3.40E+38
			38指数位
		float: 32位 = 4字节
			1符号位	8位指数位  23位尾数位
					2^127
			使用过程中必须用F/f标记是float
			也可以强制类型转换

		double: 64位 = 8字节
			1符号位	11位指数位 52位尾数位
			浮点型的默认类型是double

		客观存在问题:精度缺失问题,不能判断两个浮点数是否相等

eg:

package day02.type;
/*
 * 数据类型 之 浮点型
 */
public class DemoDouble01 {
	public static void main(String[] args) {
		//0.09999999999999964
		double d = 5.0 - 4.9;
		System.out.println(d);
		
		//0.10000000000000009
		double d1 = 3.0 - 2.9;
		System.out.println(d1);
		
		double d3 = 3.0 - 2.5;
		System.out.println(d3);

		//float 标记:F/f
		float f = 3.14f;
		//double d3 = 5.5d;
	}

}

字符型:

	字符型: 16位 = 2字节
		取值范围: 0 ~ 2^16-1 = 65535
				'\u0000' ~ '\uffff'
		编码编辑器 ->  Unicode

eg:

package day02.type;
/*
 * 数据类型之字符
 */
public class DemoChar02 {

	public static void main(String[] args) {
		//整数
		int a = 8;
		a = 010;// 0开头表示8进制
		System.out.println(a);//8
		a = 0xa;// 0x开头表示16进制
		System.out.println(a);//10
		
		
		char c = 'a';
		c = '中';
		
		c ='\u4e2d';//Unicode编码 1字符 = 2字节
		System.out.println(c);
		
		char c1 = 48;
		//'A' -> 97
		//'a' -> 65
		//'0' -> 48
		System.out.println(c1);//0 -> SACII值 
		//数值0 表示 -> 空字符
		c1 = 0;
		System.out.println(c1);
		
		boolean b = true;
	}

}
上一篇:php大文件(视频)分片上传


下一篇:ASP.NET大文件上传支持切割上传