Java基础
语言发展历:
机器语言(二进制) -> 汇编语言(底层)-> 高级语言(面相对象、面向过程)
Java分类:
Java SE :桌面开发
Java ME:手机开发
Java EE:服务器开发
Java语言特性:
简单、面向对象、可移植性、高性能、分布式、动态性、多线程、安全性、健壮性
JDK:
JDK是Java开发工具包,它提供了Java的开发环境(提供了编译器javac等工具,用于将java文件编译为class文件)和运行环境(提 供了JVM和Runtime辅助包,用于解析class文件使其得到运行)。如果你下载并安装了JDK,那么你不仅可以开发Java程序,也同时拥有了运 行Java程序的平台。JDK是整个Java的核心,包括了Java运行环境(JRE),一堆Java工具tools.jar和Java标准类库 (rt.jar)。
JRE:
JRE是Java的运行环境。面向Java程序的使用者,而不是开发者。如果你仅下载并安装了JRE,那么你的系统只能运行Java程序。JRE是运行Java程序所必须环境的集合,包含JVM标准实现及 Java核心类库。它包括Java虚拟机、Java平台核心类和支持文件。它不包含开发工具(编译器、调试器等)。
JVM:
JVM是JRE的一部分。它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java语言最重要的特点就是跨平台运行。使用JVM就是为了支持与操作系统无关,实现跨平台。所以,JAVA虚拟机JVM是属于JRE的,而现在我们安装JDK时也附带安装了JRE(当然也可以单独安装JRE)。
Java程序的运行机制:
Java语言包含:编译型和解释型
编译型: 直接全部编译,如果程序更新需要重新编译
解释性: 编译一段解释一段
变量:
变量是储存数据值的容器:
在Java中,有不同类型的变量:
- String 存储文本,ps: String s=“hello”;
- int 整数类型,存储整数,不能存小数,小数类型转换会被去掉
- float 存储整数,带小数 ps: float f=3.14f;
- char 存储单个字符,不能存储多个字符,存储多个字符需要用String ,char值由单引号包围ps: char c=‘A’;
- boolean 存储有两种状态的值:true 或者 false
命名规范:
- 可以包括字母、数字、下划线、美元符号
- 开头必须是字母
- 小写字母开头,不能包含空格
- 区分大小写,myName 和 myname 是不同的变量
- 推荐驼式命名法:例子:myNameIsJk
- 保留字,例如Java的关键字,int、boolean、String 是不能作为名称使用的
final关键字
当变量被加上final 关键字,变量则变为常量,特点:不能再被赋值
原始数据类型:
原始数据类型规定了变量值的大小和类型,他没有额外的方法
而在Java中有八种原始的数据类型
数据类型 | 大小 | 描述 |
---|---|---|
byte | 1字节 | 存储-128到127的整数 |
short | 2字节 | 存储-32,768到32,767之间的整数 |
int | 4字节 | 存储-2,147,483,648到2147483647之间的整数 |
long | 8字节 | 存储-9,223,372,036,854到9,223,372,036,854,775,807之间的整数 |
float | 4字节 | |
double | 8字节 | |
boolean | 1字节 | |
char | 2字节 |
float f=10.0f;
double d=12e4;//e,E代表含义是12的4次方
boolean b=true;
char a = 'B';//只能存储一个字节
类型转换:
小转大:数据不会丢失
大转小:数据会丢失
例子:
//小转大
int i=9;//4个字节
System.out.println(i);//输出9
double d=i;//8个字节
System.out.println(d);//输出为9.0,数据未丢失
//大转小
double d1=9.28;
System.out.println(d1);//输出9.28
int i1=(int)d1;//强制转换
System.out.println(d);//输出为9.0,数据丢失
运算符:
算术运算符:
操作符 | 名字 | 描述 | 例子 |
---|---|---|---|
+ | 加 | 两数相加 | X+Y |
- | 减 | 两数相减 | x-y |
* | 乘 | 两数相乘 | x*y |
/ | 除 | 两数相除,无余数 | x/y |
% | 取模 | 返回两数相除的余数 | x%y |
++ | 增量 | 将变量值增加1 | x++/++x |
– | 减量 | 将变量值减1 | X–/–x |
例子:
//声明两个变量
int a=5;
int b=3;
//测试算数运算符
int sum1=a+b;
int sum2=a-b;
int sum3=a*b;
int sum4=a/b;//5/3=1……2 除法只留商,结果为1
int sum5=a%b;//取模或者叫取余 5%3=1……2 只留余数,结果为2
//各个值的返回结果
System.out.println("加法,运算符结果:"+sum1);
System.out.println("减法,运算符结果:"+sum2);
System.out.println("乘法,运算符结果:"+sum3);
System.out.println("除法,运算符结果:"+sum4);
System.out.println("取余/取模,运算符结果:"+sum5);
System.out.println("++a,运算符结果:"+(++a));//先加1
System.out.println("a++,运算符结果:"+(a++));//后加1
System.out.println("--b,运算符结果:"+(--b));//先减1
System.out.println("b--,运算符结果:"+(b--));//后减1
运行结果:
赋值运算符:
赋值运算符是用来给变量赋值的
操作符 | 名字 | 例子 | 等同于 |
---|---|---|---|
= | 赋值符号 | x=5 | x=5 |
+= | 加等 | x+=5 | x=x+5 |
-= | 减等 | x-=5 | x=x-5 |
*= | 乘等 | x*=5 | x=x*5 |
/= | 除等 | x/=5 | x=x/5 |
%= | 取余等 | x%=5 | x=X%5 |
&= | 与等 | X&=5 | x=x&5 |
|= | 或等 | x|=5 | x=x | 5 |
^= | 非等 | x^=5 | x=x^5 |
例子:
//赋值运算符
int x=5;//给变量赋值
System.out.println("赋值:"+x);//结果:5
x+=5;//现在x已经等于5了,x=x(5)+5;
System.out.println("加等:"+x);//结果:10
x-=5;//现在x已经等于10了,x=x(10)-5;
System.out.println("减等:"+x);//结果:5
x*=5;//现在x已经等于5了,x=x(5)*5;
System.out.println("乘等:"+x);//结果:25
x/=5;//现在x已经等于25了,x=x(25)/5;
System.out.println("除等:"+x);//结果:5
x%=5;//现在x已经等于5了,x=x(5)%5 余数为0;
System.out.println("取模等:"+x);//结果:0
x&=5;
System.out.println("与等:"+x);
x|=5;
System.out.println("或值:"+x);
x^=5;
System.out.println("非值:"+x);
运行结果:
比较运算符:
比较运算符是用来比较两个数值的
返回true和false两个值
操作符 | 名字 | 例子 |
---|---|---|
== | 等于 | x==y |
!= | 不等于 | X!=y |
> | 大于 | X>y |
< | 小于 | x<y |
>= | 大于等于 | x>=y |
<= | 小于等于 | x<=y |
例子:
//比较运算符
int a=5;
int b=10;
System.out.println("==,运算符结果:"+(a==b));
System.out.println("!=,运算符结果:"+(a!=b));
System.out.println(">,运算符结果:"+(a>b));
System.out.println("<,运算符结果:"+(a<b));
System.out.println(">=,运算符结果:"+(a>=b));
System.out.println("<=,运算符结果:"+(a<=b));
运行结果:
逻辑运算符:
逻辑运算符是用来确定变量或数值之间的逻辑关系
返回true和false两个值
操作符 | 名字 | 描述 | 例子 |
---|---|---|---|
&& | 与 | 两者之间都要符合 | x<5&&x<10 |
|| | 或 | 两者之间符合一方即可 | x<5||x<10 |
! | 非 | 两个都不符合 | !(x<5&&x<10) |
例子:
int a=5;
int b=10;
int c=11;
System.out.println("&&,运算符结果:"+(c>a&&c>b));//c既大于a,也大于b,所以值为true
System.out.println("||,运算符结果:"+(c>a||c<b));//c大于a,但b小于c,两个条件只需要满足一个,所以结果为true
System.out.println("!,运算符结果:"+!(c>a&&c<b));//两个条件都不需要满足,所以也为true
运行结果:
常用工具类:
String字符串:
常用方法:
String txt="Hello World!";
System.out.println(txt.length());//输出字符串长度
System.out.println(txt.toUpperCase());//全部大写
System.out.println(txt.toLowerCase());//全部小写
System.out.println(txt.indexOf("world"));//查找该字符串的位置
String first="hello";
String end="!";
System.out.println(first+""+"!");//将字符串链接起来
System.out.println(first.concat(end));//用字符串自带方法链接起来,但没有空格
String txt1="\"你好?\"";//双引号的引用
String txt2="it\'s";//单引号的引用
String txt3="\\";//斜杠的引用
System.out.println(txt1);
System.out.println(txt2);
System.out.println(txt3);
算数(Math):
System.out.println(Math.max(5,10));//比较两个数,输出最大值
System.out.println(Math.min(5,10));//比较两个数,输出最小值
System.out.println(Math.sqrt(16));//开方
System.out.println(Math.abs(-4.7));//绝对值
double randomNum=Math.random();//随机数
System.out.println(randomNum);