java基础01
Java 基础
第一章 概念
程序 指令
机器语言---》汇编语言---》高级语言
1.1 Java
历史
1.2 Java特性
特点:跨平台
简单、面向对象、健壮性、安全、分布性、多线程
1.3 体系
Java SE
Java EE
Java ME
1.4 核心机制
垃圾回收机制GC:
管理对象;分配,释放。
JVM:虚拟机:翻译
跨平台(一次编译):源文件(xxx.java)——字节码文件(xxx.class)——JVM——不同系统
(DOS 命令) 编译源文件 javac xxx.java 运行 java xxx 解释
Java语言是跨平台的,而JVM不是跨平台的
Java程序实际上是运行在JVM之上
1.5 DOS命令
ping IP 探测
盘符: 进入盘符
dir 列出当前目录下所有文件及文件夹
md 创建
rd 删除
cd 进入目录
cd .. 上一级目录
cd \ 根目录
exit 退出
cls 清屏
1.6 JDK与JRE
JDK:开发工具
JRE:运行环境
1.7 基本程序
public class Hello{//公共 类
public static void main(String[] args){//
System.out.println("Hello Java!");
}
}
// 命名:类名(首字母大写)
/*
多行注释
*/
/**
* @文档注释
*/
1.8 IDEA 使用
1.8.1 目录
根目录/ 单项目直接建立class
多模块建立module
src:存放源代码 .java
1.8.2 快捷键
【1】快速创建main方法:psvm
【2】快速输出语句:sout 或者 变量.sout
【3】复制一行:ctrl+D
【4】删除一行:ctrl+y
【5】撤回:ctrl+z
【6】代码上下移动:ctrl+shift+上下键
【7】代码左右选中:ctrl+shift+左右键
【8】快速选中某个关键字/某个单词:双击即可。
【9】自动生成代码:alt+insert。 --> 比如类的get和set方法等。
【10】万能的快捷键:alt+enter --> 手动导入架包{没有设置自动导入架包的时候才有效果}、自动生成变量、返回值等。
【11】快速生成注释:ctrl+/ 【单行注释】 ctrl+shift+/【多行注释】 --》 取消注释和快速注释快捷键是一样的
【12】添加一个代码自动补全的快捷键,常用的是alt+/
【13】快速排版/代码格式化:ctrl+alt+L -->
1.8 包
package
Project 含有多个module
module含有多个package
package下为文件
包命名 com.xx.xx
第二章 变量常量
2.1 常量
不变的量。 字面常量和字符常量(final修饰)。
字面常量:整数、浮点数、布尔、字符、字符串
字符常量:
2.2 变量
可以改变。
Type var = value;//定义变量
//使用前要初始化;可分开定义和赋值
变量存储:
2.3 标识符
数字、字母、$、_ 组成,不能以数字开头,区分大小写
命名:变量、方法、集合等以“小驼峰”命名
类名、项目名以“大驼峰”命名
2.4 数据类型
2.4.1 基本数据类型
整数:byte(1 B) short(2 B) int(4 B) long(8 B -L) 默认值 int 0
浮点:float(4 B -f) double(8 B) 默认值double 0.0
布尔:boolean (1 b) true/false(默认)
字符:char(2 B)
2.4.2 引用类型
String:字符串类
类、数组、接口
2.5 编码解码
ASCII :
0---9:48---57
A---Z:65---90
a---z:97---122
GBK:一个汉字2个字节
Unicode:国际 UTF-8:变长存储 1-6字节
char 底层存储使用UTF-16,占2个字节(\u0000 ---- \uffff)前127为ASCII,后面为Unicode
char x = '2' + 2;//'2'+2得到ASCII码值54,赋值给char型转化为 4
转义字符
| \n | 换行 |
|---|---|
| \r | 回车 |
| \f | 换页 |
| \b | 退格 |
| \0 | 空字符 |
| \s | 空格 |
| \t | 制表符 |
| \" | 双引号 |
| \' | 单引号 |
| \\ | 反斜杆 |
| \ddd | 八进制字符 |
| \uxxxx | 16进制Unicode字符 |
2.6 类型转换

2.6.1 自动类型转换
小到大:自动
2.6.2 强制类型转换
大到小:(Type)varName
溢出问题
第三章 运算符与表达式
3.1 算术运算符
一元:++、-- (自增自减,前置后置)
二元:+、-、*、/、%
3.2 赋值运算符
= 、+=、-=、*=、/=...
3.3 比较运算符
>、<、 >=、<=、!=、==
3.4 逻辑运算符
| &&(短路与)/& |
|---|
| ||(短路或)/| |
| !(非) |
单&时,左边无论真假,右边都进行运算;
双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
“|”和“||”的区别同理,双或时,左边为真,右边不参与运算
&&,||和&以及|的区别:结果相同,但是有短路效果,一般建议使用&&,||
3.5 三元运算符
返回最终结果 = (关系表达式) ? 结果1 :结果2;
第四章 流程控制语句
结构化程序设计,简单可靠,可维护性,模块独立
4.1 顺序结构
线性、有序,依次执行
4.2 分支结构
4.2.1 if else
if(expression1 is true) {
expressions1;
}else if(expression2 is true{
expressions2;
}else {
expressions3;
}
4.2.2 switch
switch (expression) {
case exp1:
expression;
break;
case exp2:
expression;
break;
default:
expression;
}
4.2.3 Scanner
控制台输入
import java.util.Scanner;//导入
//常用
Scanner s = new Scanner(System.in);
Type value1 = s.nextLine();//以回车结尾,读取一行
Type value2 = s.next();//从有效数据起,以空格和回车结尾
Type value3 = s.nextTypeName();//读取一个某类型的数据
boolean flag1 = s.hasNext();//是否存在后续数据
boolean flag2 = s.hasNextTypeName();//是否存在后续某类型数据
4.3 循环结构
重复执行
循环体、循环变量初始化、循环变量改变、控制条件
4.3.1 while
while(expression){//条件为真时执行
expressions;//执行
}
4.3.2 do while
do{
expressions;//先执行一次
}while(exp);//若为真则继续
4.3.3 for
for(int i = 0;i < value;i++) {
exp;
}
for(Type var : Collection) {
exp;
}
4.4 break,continue,return
break:终止当前循环
continue:继续下一次循环,而不执行当前循环的后面语句
return:返回、跳出
第五章 数组与方法
5.1 数组
Java的数组是引用类型,数组长度一经确定不能改变;
数组在内存中是连续分配,所以读取速度快;
通过索引赋值和访问;
5.1.1 定义
Type[] arr = new Type[size];//动态创建,默认初始值
Typr[] arr = {v1,v2,v3};//直接赋值
5.1.2 二维数组
Type[][] arr = new Type[m][n];//m个n
Type[][] arr = new Type[x][];//x个,半动态
/**注意:
*再赋值时,要new一个对象进行赋值,因为内部的一维数组默认为null,
*直接赋值则出现java.lang.NullPointerException空指针异常。
*Array reference expected
*/
Type[][] arr = {{1,2},{3,4},{5,6}};//直接赋值
5.1.3 Arrays
Arrays.toString(数组名);//将数组内容转换成字符串进行输出
Arrays.copyOf(源数组,新数组长度);//复制数组元素到新数组
Arrays.equals(数组1,数组2);//判等
Arrays.fill(char[],val);//填充
Arrays.sort(数组);//字面量类型数组 默认升序
5.2 方法
函数
5.2.1 基本组成
public static main(String[] args){
/**
* 方法体
*/
}
//命名:小驼峰命名
/******************************************************
*参数:值传递
**基本数据类型:四类八种
**引用数据类型:String、数组、
引用类型通过方法改变其本身,但String不行,String[]可以;
其他的为值传递,相当于副本在方法里操作;
******************************************************/
/**
*全局变量:定义在类中;可以不初始;
*局部变量:定义在方法;必须初始化;
*/

浙公网安备 33010602011771号