目录
Java语言的特点
- 面向对象(封装、继承、多态)
- 可靠性
- 安全性
- 支持多线程
- 编译与解释并存
封装、继承、多态的好处
封装
封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法,保证数据的安全性和可用性。
继承
通过使用继承我们能够非常方便地复用以前的代码。
多态
提高了程序的扩展性和可维护性。
java运行环境的安装
- 创建系统变量JAVA_HOME,变量值是按照jdk的路径D:\java\jdk
- 创建系统变量CLASSPATH,变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
- 配置path系统变量。变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
- 打开命令窗口,输入java -version指令.
java运行流程
- 创建.java为后缀的文件
- 把编写好的文件放到对应的目录下面,打开dos命令窗口
- 通过javac指令,把.java文件编译成为.class文件
- 通过java指令把编译后的.class文件运行(使用时不带文件后缀名)
Java的规范要求
- java代码是有层级关系,缩进区分层级关系
- 符号是成对出现,先敲成对出现的符号,在敲里面的内容(容易出错的地方)
- 符号都是英文模式,除了””内部可以有中文
- Java程序写完一句话,一点注意加上英文符号 ;
基础知识
输出语句
System.out.print("输出的内容");//不换行
System.out.println("输出的内容");//换行
Scanner类
1.使用的时候需要导入java.util包。
import java.util.*;
2.用new在内存中实例化一个Scanner出来
Scanner s = new Scanner(System.in);
3.使用
Scanner s = new Scanner(System.in);
System.out.println("你最爱的动物是什么?");
String name = s.next();
System.out.println("你最爱的动物是:"+name);
next() ~ 字符串
nextInt() ~ 整型
nextDouble() ~ 浮点数
注释
单行注释
//System.out.print("输出的内容");
多行注释
/*System.out.print("输出的内容");
System.out.print("输出的内容");
System.out.print("输出的内容");
System.out.print("输出的内容");*/
文档注释
/**
*/
报错
- 语法错误,开发工具会直接提示,根据提示改错
- 写错方法,语法不报错,运行的时候在控制台报错,并给出提示
易错点
- 语法结构不能修改
- Java对大小写敏感,大小写得注意
- public修饰的类的名称必须与Java文件同名
- Java程序写完一句话,一点注意加上英文符号 ;
变量
!!!注意先声明在赋值!!!
声明变量的两种方法
1.
String name;
name="张三";
String name="张三";
变量名命名规范
首字母只能以字母,下划线“_”,"$"符号
其他部分可以是字母,下划线“_”,"$"符号,数字
数据类型
常用的数据类型:
char//(字符型)用于存储单个字符串
int//(整型)用于存储整数
double//(双精度)用于存储小数
String//(字符串)用于存储一组字符串
运算符
=
把=右边的变量赋值给左边的变量
算术运算符
+ - * /
% :取余(求余数):求现在两个数除了之后的余数
类型转换
自动类型转换:把小范围的变量赋值给大范围的变量
强制类型转换:把大范围的变量赋值给小范围的变量
关系运算符
> ,< ,== ,!= ,>= ,<=
结果只能是boolean类型:true(真)或者false(假)
重载和重写的区别
重载: 发生在同一个类中,方法名必须相同,参数类型不同、个数不同、顺序不同,方法返回值和访问修饰符可以不同。
重写: 发生在父子类中,方法名、参数列表必须相同,返回值范围小于等于父类访问修饰符范围大于等于父类;如果父类方法访问修饰符为 private 则子类就不能重写该方法。
自动装箱与拆箱
装箱:将基本类型用它们对应的引用类型包装起来;
拆箱:将包装类型转换为基本数据类型;
== 与 equals
==:它的作用是判断两个对象的地址是不是相等。
equals() : 它的作用是判断两个对象是否相等。
选择结构
If选择结构
If-else选择结构
f-else --if选择结构
//语法结构:
If(条件1){
代码块1
}else if(条件2){
代码块2
}else if(…N){
代码块N
}else{
如果上面的条件都为false执行最后的else中的代码
}
Switch选择结构
在case语句运行完毕可以不加break;
挨个运行case块,在遇到break后停止,如都没写break,会挨个把所有的都运行一遍
基本if选择结构: 处理单一或组合条件的情况
if-else选择结构:处理简单的条件分支情况
多重if选择结构:处理复杂的条件分支情况
嵌套if选择结构:用于较为复杂的流程控制
switch选择结构:多重分支并且条件判断是等值判断的情况
循环
While循环
Do-while循环
For循环
Break关键字
在循环中使用,作用:终止循环
Continue关键字:只能在循环中使用
跳过当轮循环,直接运行下一轮循环
数组
数组的基本要素:
- 标识符:数组名
- 数组元素:数组中的值
- 元素下标:元素编号
- 元素类型:数组能存放的数据类型
类和对象
类
根据对象的共有属性和方法抽离出来
对象
静态特征:基本属性
属性:对象具有的各种特征
动态特征:行为习惯
类是个概念,是抽象的
对象:是看得见摸得着的实体
类是对象的类型
对象是类的实体
创建类
public class 类名{
属性
方法
}
创建对象
类名 对象名=new 类名();
Int a=值;
使用:.操作符
对象名.属性=值;//给属性赋值
对象名.属性;//获取属性的值
对象名.方法();
局部变量和成员变量
放在类中的变量,就是成员变量
放在方法中的变量,就是局部变量
成员变量的作用域:在整个类中
局部变量的作用域:在当前声明的{ }内部
成员变量有初始值,局部变量没有
无参方法
方法的构成:返回值类型 方法名 参数列表 方法体
public 返回值类型 方法名(){
方法的主体
}
有返回值:必须给return 类型(返回值类型是什么就返回什么值类型的数据);
带参方法
方法组成:访问控制修饰符,返回值类型,方法名,参数列表,方法体
public 返回值类型 方法名(int a,String name){
方法的主体
}
String类
- String字符串定义之后不能修改
- String类是final修饰的
- 当创建一个字符串值为aaa,再次创建一个字符串也为aaa的时候,在String的内存空间中只会创建一份aaa创建字符串的时候,String会拿这个值到内存中去判断有没有,有就直接指向这个地址,没有创建这个内存空间。
计算字符串的长度
Int count=字符串.length();
- 字符串中空格也算一个字符
- Length()方法返回一个int类型结果,字符串长度
连接字符串
第一种:+拼接
第二中:concat()方法
字符串A.concat(字符串B);