java基础
一. 计算机基础知识
1.1 二进制
十进制数据转成二进制数据:使用除以2获取余数的方式
二进制数据转成十进制数据:使用8421编码的方式
二进制:1010
这个二进制每位的数字,从右向左:
二进制:
1 0 1 0
每位对应的十进制:
8 4 2 1
将二进制位是1的对应的十进制数相加即可:
8 + 2 = 10
1.2 字节
字节是计算机中最小存储单元。计算机存储任何的数据,都是以字节的形式存储
8个bit(二进制位) 0000-0000表示为1个字节,写成1 byte或者1 B。
8 bit = 1 B
1024 B =1 KB
1024 KB =1 MB
1024 MB =1 GB
1024 GB = 1 TB
1.3 Java三大体系
Java SE(标准版 用于桌面应用的程序开发):
JavaSE以前称为J2SE.
它允许开发和部署在桌面、服务器、嵌入式环境和实施环境中使用的Java应用程序。
JavaSE 包括支持JavaWeb服务开发的类,并为Java Platform,Enterprise Edition(Java EE)提供基础。
Java EE(企业版 用于web程序的开发):
JavaEE以前被称为J2EE.
企业版本帮助开发和部署可移植、健壮、可伸缩切安全的服务端Java应用。
Java EE是在JavaSE的基础上构建的 他提供Web服务、组建模型、管理和通信API.
可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和web2.0应用程序。
Java ME(小型版 用于手机应用):
Java ME为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。
Java ME包括灵活的用户界面、健壮的安全模式、许多内置的网络协议以及对于动态下载的连网和离线应用程序的丰富支持。
基于Java ME规范的应用程序只需要编写一次,就可以用于许多设备,而且可以利用每个设备的本级功能。
1.4 Java语言开发环境
JVM:Java虚拟机,简称JVM,java的运行环境
JRE :是Java程序的运行时环境,包含 JVM 和运行时所需要的核心类库 。(我们想要运行一个已有的Java程序,那么只需安装 JRE )
JDK :是Java程序开发工具包,包含 JRE 和开发人员使用的工具。(我们想要开发一个全新的Java程序,必须安装 JDK)
JDK>JRE>JVM
1.5 数据类型分类
基本数据类型:
四类 :
整数 、 浮点数 、 字符 、 布尔 。
八种:
byte(字节)short(短整型)int(整型)long(长整型)
float(单精度浮点型) double(双精度浮点型)
char(字符型)
boolean (布尔型)
引用数据类型:包括 类 、 数组 、 接口 。
二. 数据类型转换、运算符
1.1 类型转换
Java中的基本数据类型,除boolean外,其它类型之间都可以进行转换
A).自动转换:将“窄”类型转换为“宽”类型
byte(1) 转换为 int(4)
public static void main(String[] args) {
byte a =10;
int b = a;
System.out.println(b);//10
}
byte 类型内存占有1个字节,提升为 int 类型 ,自动补充3个字节; int 类型内存占用4个字节,提升为 long
类型,自动补充4个字节;
B).强制转换:将“宽”类型转换为“窄”类型
long(8) 转换为 int(4)
public static void main(String[] args) {
long a =10;
int b = (int) a;// 转换格式: 数据类型 变量名 = (数据类型)被转数据值;
System.out.println(b);//10
}
long 类型内存8个字节, int 类型内存4个字节。如果直接赋值: int b = c; 将会引发编译错误。
想要赋值成功,只有通过"强制类型转换",将 long 类型强制转换成 int 类型才能赋值。
1.2 运算符
1.++将变量自增1:
public static void main(String[] args) {
int a = 10;
a++;
System.out.println(a);//11
}
2.–将变量自减1:
public static void main(String[] args) {
int a = 10;
--a;
System.out.println(a);//9
}
3.逻辑运算符
1).&&:两个都为true,结果为:true,有一个为false,结果为false;
2).||:有一个为true,结果为:true。
3).! :!true : false;!false:true
4.三元运算符
1布尔表达式 ? 表达式1 : 表达式2;
public static void main(String[] args) {
int a = 10;
int b = 20;
int max = a > b ? a : b;
System.out.println(max);//20
}
二. 流程控制语句
1.1 三种if 判断语句
1.第一种
public static void main(String[] args) {
if (关系表达式) {
语句体1;
}
}
2.第二种
public static void main(String[] args) {
if (关系表达式) {
语句体1;
} else {
语句体2;
}
}
3.第三种
public static void main(String[] args) {
if (判断条件1) {
执行语句1;
} else if (判断条件2) {
执行语句2;
} else if (判断条件n) {
执行语句n;
} else {
执行语句n+1;
}
}
1.2 switch选择语句
public static void main(String[] args) {
switch(表达式) {
case 常量值1:
语句体1;
break;
case 常量值2:
语句体2;
break;
...
default:
语句体n+1;
break;
}
}
首先计算出表达式的值
其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结 束。
最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运 行,直到遇到break,或者整体switch结束。
1.3 for循环语句
public static void main(String[] args) {
for(初始化表达式①; 布尔表达式②; 步进表达式④)
{
循环体③
}
}
eg:
for(int x = 0; x < 10; x++) {
System.out.println("HelloWorld"+x);
}
1.4 while循环语句 do
public static void main(String[] args) {
初始化表达式①
do{
循环体③
步进表达式④
} while(布尔表达式②);
}
eg:
do{
System.out.println("无条件执行一次");
}while(false);
1.5 while循环语句
public static void main(String[] args) {
初始化表达式① while(布尔表达式②){
循环体③
步进表达式④
}
}
eg:
int i = 1;
while(i<=10){
System.out.println("HelloWorld");
}
1.6 跳出语句break,continue
break 使用场景:终止switch或者循环
continue 使用场景:结束本次循环,继续下一次的循环