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 类型转换

image

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[]可以;
其他的为值传递,相当于副本在方法里操作;
******************************************************/
/**
*全局变量:定义在类中;可以不初始;
*局部变量:定义在方法;必须初始化;
*/
posted @ 2021-03-27 14:26  FremontUltimate  阅读(102)  评论(0)    收藏  举报