学习java入门的第一天

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

Java百度百科:
1991年Sun公司为了抢占单片机智能化市场先机,成立了Green项目小组,该小组在解决单片机系统编程问题时,对C++进行了改造,开发了一种称为Oak的面向对象语言。
1995年,随着互联网的蓬勃发展,Sun公司发现Oak很适合在网络上传输,继而推出了可以嵌入网页并且可以随同网页在网络上传输的Applet,并将Oak更名为Java。
1996年JDK1.0面世。
1998年J2EE发布。
1999年J2ME、J2SE、J2EE正式发布,标志着Java应用开始普及。
2004年J2SE1.5发布,更名为Java SE 5.0,代号为“Tiger”,是Java语言发展史上的又一里程碑。包含了从1996年发布1.0版本以来的最重大的更新,其中包括泛型支持、基本类型的自动装箱、改进的循环、枚举类型、格式化I/O及可变参数。
2009年,Oracle收购Sun。
2011年推出Java7。
2014年发布Java8。



javaSE javaEE(做网页) javaME(微服务终端)

web开发 -> javaweb开发:

Web前端:
HTML\CSS\JS
数据库:
Mysql sqlserver Oracle db2
jdbc连接
服务器:Tomcat \ webloge
软件服务器 -> Tomcat

服务器端语言 -> java -> 如果获取数据库中的数据
如何将获取到的数据放在前端页面


框架:
SSM -> SpringMVC + Spring + MyBaties
分布式开发
微服务开发

甲骨文 -> Mysql Oracle java
java -> 服务器端开发语言,后端开发语言


跨平台:操作系统 -> 二进制文件
Windows MacOs Linux(开源,安全)

“java” java之父_java


JVM:java运行虚拟机 -> JVM内存

JRE:java运行环境(JVM + lib[类库])

JDK:java开发环境(JRE + Tools(命令))

java中重要的命令:
java -> 运行
javac -> 编译


HelloWorld.java -> 编译 -> HelloWorld.class

集成开发工具: IDE
IDEA Eclipse VsCode

要注册的网址:
博客/CSDN
牛客网/(力扣)
gitee


java中的变量:
在JVM内存中开辟一块空间,用来存储数据的

使用变量的步骤:
1.声明 -> 类型 + 变量名
2.初始化

变量的命名规范:
1).只能出现: 英文 + 数字 + _ + $
2).不能以数字开头
3).变量首字母小写,第二个字母开头大写

类型: 基本数据类型 + 引用数据类型

基本数据类型: 8个
整型:byte/short/int/long
浮点型:float/double
字符型:char
布尔类型:boolean

进制:二进制\八进制\十进制\十六进制

二进制(符号位): 只能存储数字 0 或 1
符号位: 0表示正数,1表示负数

补码:正的和原码相同,
负数的补码符号位不变,其他位按位取反,再+1(反码+1)
反码:正数和原码相同,
负数的反码符号位不变,其他按位取反
原码:有符号位,符号位表示正数或者负数
剩下的其他位数代表数字本身

-1:
原码: 1 000 0001
反码: 1 111 1110
补码: 1 111 1111

-2:
原码: 1 000 0010
反码: 1 111 1101
补码: 1 111 1110

-3:
原码: 1 000 0011
反码: 1 111 1100
补码: 1 111 1101

-4:
补码: 1 111 1100

最小值的
补码: 1 000 0000
反码: 借位 1 111 1111
原码: 借位 1 1000 0000 -> -128

问: byte字节的最小值
-128


1字节 = 8位

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

基本数据类型: 8个

“java” java之父_Java_02

整型:byte/short/int/long
byte: 1字节 = 8位
最小值: 1 1000 0000 -> -128
最大值: 0 111 1111 -> 2^7 -1 = 127

short: 2字节 = 16位
取值范围: -2 ^ 15 ~ 2 ^15-1

int: 4字节 = 32位
取值范围: -2^ 31 ~ 2^31-1
int 是默认直接量/字面量

long: 8字节 = 64位
取值范围: -2^ 63 ~ 2^63-1
通常用来表示时间 - m/s
1970年1月1日 - 格林威治时间

浮点型:float/double
使用科学计数法进行计算,会出现精度缺失问题
不用用来判断两个值是否相等
float: 4字节

double: 8字节
默认字面量/直接量

字符型:char
Unicode字符集 -> java虚拟机默认使用的字符集
∴java基本不会出现乱码现象
2字节 = 16位
取值范围:
0 ~ 65535
‘\u0000’ ~ ‘\uffff’

布尔类型:boolean
返回值: ture / false


运算符:
算数运算符:
+ - * / %(取模) ++ –
赋值运算符
+= -= *= /=
比较运算符
> < >= <= == !=
返回值都是boolean类型表达式
true/false
位运算符 ->二进制 -> 0 或 1
& | ^(异或)
&: 0和1与上,全都是0
|: 0和1或上,全都是1
^: 相同为0,不同为1

逻辑运算符
& && | || ! ^
&& || :都是属于短路操作
短路操作: 只有出现结果,就不在接着判断
建议使用: 短路操作

public class p1 {
    public static void main(String[] args) {
        int b=3,a=3;
        if(false&&++b>3);
        if (false&a++>3);
        System.out.println(b);//结果为3
        System.out.println(a);//结果为4
    }
}

&&: 一假即假
||: 一真即真

位移运算符: 二进制

<<: 左移

>>: 右移

正数补0,负数补1

>>>: 无符号右移

符号位永远补0,得到一个正数

以(int)-4为例

“java” java之父_System_03

public class Demo05 {

	public static void main(String[] args) {
		System.out.println( 4 << 1);//8 
		System.out.println( 4 >> 1);//2
		System.out.println( 4 >>> 1);//2
		
		System.out.println( -4 << 1);//-8  *2
		System.out.println( -4 >> 1);//-2  ÷2
		System.out.println( -4 >>> 1);// 2147483646

	}

}

三目(三元)运算符
boolean表达式 ? 值1:值2
-> true为值1
-> false为值2`

int a=1,b=2;
System.out.println(a<=b ? a : b);`
//输出结果应该为1