Java基础
2022-05-18 09:56:22 46 举报
AI智能生成
Java基础
作者其他创作
大纲/内容
控制台程序开发
开发Java程序步骤
新建Java文件
编译成.class文件
运行文件
程序开发环境
JDK
JRE:Java开发环境
JVM:Java虚拟机
Java SE标准类库
开发工具集(Java编译工具)
控制台I/O
输入
Scanner
input
输出
print
println
程序注释
单行注释
//
多行注释
/* */
文档注释
/** */
流程图
实体
对象
关系
程序调试
debug
Idea Debug常用快捷键
F7
在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则进入当前方法体内,如果该方法体还有方法,则不会进入该内嵌的方法中。
F8
在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则不进入当前方法体内。
F9
在 Debug 模式下,恢复程序运行,但是如果该断点下面代码还有断点则停在下一个断点上。
Alt+F8
在 Debug 的状态下,选中对象,弹出可输入计算表达式调试框,查看该输入内容的调试结果。
Ctrl+F8
在 Debug 模式下,设置光标当前行为断点,如果当前已经是断点则去掉断点。
Shirt+F8
在 Debug 模式下,智能步入。断点所在行上有多个方法调用,会弹出进入哪个方法。
Shift+F7
在 Debug 模式下,跳出,表现出来的效果跟 F9 一样。
Ctrl+Shift+F8
在 Debug 模式下,指定断点进入条件。
Alt+Shift+F7
在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则进入当前方法体内,如果方法体还有方法,则会进入该内嵌的方法中,依此循环进入。
变量与运算符
变量
可以改变的量
变量类型 变量名=变量的值;
常量
不能改变的量
final 变量类型 变量名=变量的值;
运算符
算术运算符
一元运算符
++、--
二元运算符
+,-,*,/,%
三元运算符
布尔表达式?表达式1:表达式2
逻辑运算符
&&,||,!,^
赋值运算符
=
扩展运算符
+=,-=,*=,/=
关系运算符
>,<,>=,<=,==,!= instanceof
位运算符
&,|,^,~ , >>,<<,>>>
字符串连接符
+
数据类型与数组
基本数据类型
整型
byte
short
int
long
浮点型
float
double
字符型
char
布尔型
boolean
引用数据类型
类
class
接口
interface
枚举
eumn
数组
静态初始化
数组类型[] 变量名 = {变量值1,变量值2,变量值3};
数组类型[] 变量名 = new 数组类型[]{变量值1,变量值2,变量值3};
动态初始化
数据类型[] 变量名=new 数据类型[数组长度];
流程控制语句
分支机构
if
if(布尔表达式)
{
语句块//如果布尔表达式为true将执行的语句
}
{
语句块//如果布尔表达式为true将执行的语句
}
if else
if(布尔表达式){
//如果布尔表达式的值为true
}else{
//如果布尔表达式的值为false
}
//如果布尔表达式的值为true
}else{
//如果布尔表达式的值为false
}
多重if
if(布尔表达式 1){
语句块1//如果布尔表达式 1的值为true执行代码
}else if(布尔表达式 2){
语句块2//如果布尔表达式 2的值为true执行代码
}else {
语句块3
}
语句块1//如果布尔表达式 1的值为true执行代码
}else if(布尔表达式 2){
语句块2//如果布尔表达式 2的值为true执行代码
}else {
语句块3
}
嵌套if else
if(布尔表达式){
//如果布尔表达式的值为true
if(布尔表达式){
//如果布尔表达式的值为true
}else{
//如果布尔表达式的值为false
}
}else{
//如果布尔表达式的值为false
}
//如果布尔表达式的值为true
if(布尔表达式){
//如果布尔表达式的值为true
}else{
//如果布尔表达式的值为false
}
}else{
//如果布尔表达式的值为false
}
switch case
switch(expression){
case value1 :
//语句1
break; //可选
case value2 :
//语句2
break; //可选
//你可以有任意数量的case语句
default : //可选
//语句3
}
case value1 :
//语句1
break; //可选
case value2 :
//语句2
break; //可选
//你可以有任意数量的case语句
default : //可选
//语句3
}
循环结构
for
for(初始化;布尔表达式;更新){
//语句块
}
//语句块
}
while
while(布尔表达式){
//循环语句块
}
//循环语句块
}
do while
do{
//语句块,执行一次后再循环
}while(布尔表达式);
//语句块,执行一次后再循环
}while(布尔表达式);
for each
for(声明语句:表达式){
//语句块
}
//语句块
}
跳转结构
break
强行退出循环,不执行循环中剩余的语句。
continue
终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。
return
初识Java类
类和对象
类和对象
类
类是一个虚拟的东西。
对象
对象是一个实实在在存在的东西。
类和对象的关系
类是对象的抽象,对象是类的实体。
定义类
public class <类名>{
//定义属性部分
属性1的类型 属性1; //如:String name; int a;
属性2的类型 属性2;
……
属性3的类型 属性3; //可以有多个属性
//定义方法部分
方法1; //如:public void show(){}
方法2;
……
方法n; //可以有多个方法
}
//定义属性部分
属性1的类型 属性1; //如:String name; int a;
属性2的类型 属性2;
……
属性3的类型 属性3; //可以有多个属性
//定义方法部分
方法1; //如:public void show(){}
方法2;
……
方法n; //可以有多个方法
}
创建和使用对象
类名 对象名 = new 类名();
对象名.属性 //引用对象的属性
对象名.方法名() //引用对象的方法
对象名.属性 //引用对象的属性
对象名.方法名() //引用对象的方法
成员变量和局部变量
成员变量
在类中定义的变量称为类的成员变量。
局部变量
在方法中定义的变量是局部变量。
成员变量和局部变量的区别
在类中的位置不同
成员变量
类中方法外。
局部变量
方法定义中或者方法声明上。
在内存中的位置不同
成员变量
在堆中。
局部变量
在栈中。
生命周期不同
成员变量
随着对象的创建而存在,随着对象的消失而消失。
局部变量
随着方法的调用而存在,随着方法的调用完毕而消失。
初始化值不同
成员变量
有默认值。
局部变量
没有默认值,必须定义,赋值,然后才能使用。
变量的作用域
成员变量
成员变量的作用域在整个类内部都是可见的。
局部变量
局部变量的作用域仅限于定义它的方法,在该方法外无法访问。
成员方法
方法定义
无参方法
访问修饰符 返回值类型 方法名(){
//方法体
}
//方法体
}
有参方法
访问修饰符 返回值类型 方法名(<参数列表>){
//方法的主体
}
//方法的主体
}
方法参数传递
基本数据类型参数传递
基本数据类型传递的时候,传递的是具体的值,相当于只是拷贝了一份到方法中,而原来的值是不变的,因为值是存放在栈当中。
引用数据类型参数传递
引用数据类型传递的时候是传递的地址值,是值的引用;然后需要注意的是String除外。
地址值存在栈当中,真正的值存放在堆当中,当引用类型数据传输的时候,复制的是一份地址值,2份地址值引用的都是堆当中的具体值。
地址值存在栈当中,真正的值存放在堆当中,当引用类型数据传输的时候,复制的是一份地址值,2份地址值引用的都是堆当中的具体值。
字符串处理类
String类
不可变的字符序列
String类的常用方法
length()
返回当前字符串的长度
System.out.println("字符串的长度是:"+str.length());//10
subString()
获取从开始位置到结束的子字符串
System.out.println(str.substring(5));
System.out.println(str.substring(5, 7));//第二个参数表示是7位置之前的值
indexOf()
查找字符第一次出现在该字符串中的位置
System.out.println("字符'A'在字符串中第一次出现的位置"+str.indexOf('A'));
System.out.println("子串\"编程\"在字符串中第一次出现的位置"+str.indexOf("编程"));
charAt()
获取字符串中指定位置的字符
System.out.println(str.charAt(6));
concat()
拼接字符串
System.out.println(str.concat(A));
split()
将字符串分割为子字符串,返回字符串数组
trim()
返回去除了前后空格的字符串
toLowerCase()
将该字符串中所有字符都转化成小写
toUpperCase()
将该字符串中所有字符都转化为大写
equals()
将该字符串与指定对象比较返回true或false
String类的创建
String s3=new String( “lisi” ) ;
String s2=new String( ) ;
String s1="zhangsan" ;
StringBuffer类
可变的字符序列。
线程安全
多线程操作
StringBuffer类的常用方法
StringBuffer append()
用于进行字符串拼接
StringBuffer delete(int start,int end)
删除指定位置的内容
StringBuffer replace(int start, int end, String str)
把[start,end)位置替换为str
StringBuffer insert(int offset, xxx)
在指定位置插入xxx
StringBuffer reverse()
把当前字符序列逆转
public String substring(int start,int end)
返回一个从start开始到end索引结束的左闭右开区间的子字符串
StringBuilder类
可变的字符序列。
线程不安全
单线程操作
0 条评论
下一页