热门编程语言
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;
}
}