目录
简史
目的:微服务开发
历史:
1991: sun公司—>詹姆士高斯林(开发语言OAK语言)
1994:爪哇语言—>Java语言
2009: Oracle收购sun OracleSun
开发工具:
JDK: Java应用程序工具——>Java程序的运行平台
1. JVM (Java虚拟机)——使Java语言能实现跨平台操作
2. API(Java应用程序接口),Java语言工具。
编辑工具:记事本,Eclipse、MyEclipse、STS、IDEA
开发环境
打开安装目录:C:\Program Files\Java\jdk1.8.0_271\bin
JDK1.6之后
环境变量—新建C:\Program Files\Java\jdk1.8.0_271\bin
第一个Java程序
public class Hello{
public static void main(String[] args){
System.out.printf("Hello Java!");
}
}
Java执行流程
Java数据类型
概念:信息(计算机中所有存在的内容都称为信息)的归类。
存储方式:信息在计算机中首次出现存储的位置在内存中,再通过程序将内存(实现临时存储)中的信息写入到磁盘(永久存储)中进行存储。
分类:
-
基本数据类型(原始数据类型)
-
int 整数类型 占4字节 32位 范围-2^31---2^31-1<!--0为第一个数-->
-
long 长整数类型 8字节 64位 范围-2^63---2^63-<!--在使用整数类型的时候如果数值范围没有超出int的最大范围的话可以不用添加l单位,否者需要添加:132423153463244l-->
-
short 过时喽~~~
-
double 双精度浮点类型 8字节 64位<!--所有的数都可以为double;所有小数后位数在1位以上的包含一位的都是双精度-->
-
float 单精度浮点类型 4字节 32<!--所有小数点后只有一位的并且包含f单位的数都是单精度-->1.1f
-
char 字符类型 2字节 16位<!--所有字母(a、b)、符号(!、_、$)、中文字(李、张)都属于字符,所有字符都会以单引号进行包含-->
=====================================================================
-
boolean 布尔类型 1字节 8 所存储的数据只能是结果数据(true/false)。
=====================================================================
-
byte 字节类型 。
-
-
引用数据类型
在Java中所有单词首字母为大写的都使引用类型(自定义)
String:字符串类型
特征:在Java中所有带有双引号的数据都是字符串类型。
内存结构图:
变量:
作用:在Java程序中对指定数据类型进行存储的一种容器行为。在当前容器中可以改变存储的数据值,前提是相同的类型。
创建语法:
数据类型 变量名称=值;
// main+alt+/
public static void main(String[] args) {
int a = 2021;
//syso+alt+/
System.out.println(a);
long b=2021;
System.out.println(b);
long c=23534265246l;
System.out.println(c);
int x =1;
int x1=2;
long y = 2;
long y1=3;
y = x;//在程序中,小类型数据是可以存放在大类型的容器中--转型
System.out.println(y);
x1=(int)y1;//强制类型转换 只能从大到小
System.out.println(x1);
double db1=1.1;
y1=(long)db1;
System.out.println(y1);//大到大也需要强转。
String str="abc";
System.out.println(str);
String str1="张 三";
System.out.println(str1);
}
运算符
-
算数运算符:在程序中实现算数运算的操作。
-
一元运算符
符号:++ (自增) --(自减)
特征:
-
运算符在变量之后出现的时候,计算规则是直接将当前的变量值进行获取,在执行完当前的指令后才会进行自增操作。
-
运算符在变量之前出现的时候
public static void main(String[] args) { //定义两个整形的变量 int a = 1; int b = 2; a++;//++a 一元运算符如果出现在一条独立的指令中,运算符在前和后是没有区别。 System.out.println(a);//2 System.out.println(b++);//2 输出以后才会进行++的行为 System.out.println(b);//3 System.out.println(++b);//4 ++后进行输出 int x = 1, y = 2; y = x++; x = ++y; System.out.println("x="+x+"y="+y);//x=2y=2 //重点 int i = 1,j =2; i = i++;//当他不存在~~~ java中在自增操作中,自己给自己赋值属于无效操作。(自己是无法给自己赋值的) j = i++; System.out.println("i="+i+"j="+j);//i=2j=1 i = ++i;//该语句会执行,先自增变为2,再赋值回去 System.out.println("i= "+i);//3 }
-
-
二元运算符
符号: + - * / %
-
三元运算符
String str = "张三"; String input = str=="刘德华"?"真的帅"!"丑的要死"; //输出input 丑的要死
-
-
赋值运算符
符号: += -= *= /= %= =(赋值)
例如:
int a = 1; a +=3 //4 相当于a = a + 3
=========================================================================
-
比较运算符
符号: > < >= <= ==(等于) !=(不等于)
比较运算符对表达式进行操作后得到的是一个结果(true/false)数据。
==和equals的区别
注意:等号在对引用数据进行比较时,执行的是两者的堆地址的引用是否相同 看下面的例子
String s1 = "沐泽";
String s2 = "沐泽";//s1和s2都在常量池里面
String s3 = scanner.next();//输入"沐泽"实际上.next在堆里面,所以s3是引用堆里面的数据
System.out.println(s1==s2);//true
System.out.println(s1==s3);//false!!!!!!!!!!!!!
所以在对引用数据进行内容比较的时候无法通过==进行比较,因为==比较的是引用是否相同
而在值内容比较的情况下可以使用equals进行内容比较
System.out.println(s1.equals(s3));//true
//在开发过过程中会将常量值作为初始比较值
String s4 = null;
//System.out.println(s4.equals(muze));
System.out.println("muze".equals(s4));//在进行常量值比较的时候引用数据一定要在被比较中
-
逻辑运算符
逻辑运算符主要以短路逻辑运算符为主,而在c或一些基础的计算机语言中逻辑运算符符比较常见
-
短路逻辑运算符:&&短路与 ||短路或 !逻辑非
短路怎么理解?当前面的部分已经为false则得到整体为false,不会继续往后看。所以它的性能也比下面逻辑运算符好。
int a = 1,b = 2; System.out.println(a++<1&&b++=2); //a = 2,b = 2
-
逻辑运算符: &逻辑与 |逻辑或 !逻辑非
计算机中逻辑运算符包含两种数据运算
-
结果数据:与,或,非:对结果进行取反(对布尔/结果数据进行操作)
-
值数据
在计算机中逻辑值运算属于一种底层的计算机算法方式,采用进制形式(二进制)进行逻辑运算
3 & 2 =? //2
3 0011
2 0010
----------&
0010
-