Java基础
1. 程序:为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合
2.指令:下达给计算机的每一个命令被称为指令
JAVA的两种技术:
(1)JavaSE:Java平台标准版 是java技术的核心 主要用于桌面应用程序开发
(2)JavaEE:java平台企业版 主要用于网络程序和企业级应用开发
3. Java程序开发的步骤:
a.编写源程序; 以“.java”为后缀名
b.编译字节码文件;以“.class”为后缀名
c.运行;
4. Java项目组织结构
a.JRE系统库目录:存放程序运行必须的系统库文件
b.bin目录:存放可执行的字节码文件
c.src目录:存放Java源文件
5. 注释:单行注释 //
多行注释 /* */
Javadoc文档注释 /**
*
*/
6. 变量:一个数据存储空间的表示 ,变量是存储数据的一个基本单元
7. 数据类型
整型:int (基本数据类型)
双精度浮点型:double (基本数据类型)
字符型:char (基本数据类型)
字符串型:String(注意是个引用数据类型)
布尔型:boolean (基本数据类型)(取值只能为true 或 false)
8.变量声明语法:(1) 数据类型 变量名;
变量名 = 值;
(2) 数据类型 变量名 = 值;
9.变量命名规则:(1)必须以字母、”_”、”$”开头;
(2)变量可以包括数字但不能以数字开头;
(3)变量不能包含除”_”和”$”以为的任何特殊字符;
(4)变量不能使用java的关键字(int calss public);
10.运算符:
(1) 赋值运算符(=):将等号右边表达式的结果赋值给等号左边的变量;
(2) 算术运算符(+ - * / % ++ --)
i++; 等同于 i = i+1;
(3 ) 关系运算符( > < >= <= == != )
主要用于进行比较运算,返回结果为布尔型
(4) 逻辑运算符 (&& || ! )
&& 逻辑与 两个条件同时为真时结果为真,两个条件有一个为假结果为假
|| 逻辑或 两个条件有一个为真结果为真,两个条件同时为假结果为假
!逻辑非 条件为真结果为假,条件为假结果为真
11.数据类型转换:
(1) 自动转换:(放大转换)
规则一:如果一个操作数为double型,则整个表达式可提升为double型;
规则二:满足自动类型转换条件:两种类型要兼容;目标类型大于源类型
(2) 强制转换:(缩小转换)语法格式:(数据类型)表达式
循环:反复进行相同的或类似的一系列操作,由循环条件和循环操作构成
初始情况不满足循环条件时
while循环一次都不会执行
do-while循环不管任何情况都至少执行一次
Scanner input = new Scanner(System.in);
name = input.next();
int java = input.nextInt();
注:没有nextChar方法,如果想得到char,必须先用next得到string再用charAt()
13. 调试: 找出并解决bug的过程
主要方法: 设置断点, 单步执行, 观察变量
调试的主要步骤:
1、猜测出错位置,设置断点
2、单步运行
3、观察变量的值
4、发现问题
5、修正代码,重新运行
6、解决问题
14.for 循环语法结构:for(1参数初始化;2条件判断;4参数值改变){3语句}
跳转语句:
break:跳出循环,执行循环体外的语句
continue:终止本次循环,进入下一次循环,忽略本次循环中continue后的语句
基本数据类型和引用数据类型的区别:
1、 引用数据类型有方法,基本数据类型没有方法;
引用数据类型要通过new关键字来声明,基本数据类型不需要;
16. 类的方法实现某个特定的功能,
别的类不需要知道它如何实现!
知道了实现此功能的类和它的方法名,
就可以直接调用了,不用重复写代码!
17.全局变量和局部变量的区别:
1、 作用域不同:全局变量作用于类,局部变量仅作用于定义该变量的方法内
2、 初始值不同:全局变量有初始的默认值,局部变量没有
包的作用:
1、 可以将类组成较小的单元,便于查找和使用;
2、 防止命名冲突;
3、 在更广的范围内保护类,数据和方法;
包与目录的关系:
1、 每个包都对应文件系统的同名子目录
17.数组:数组是一个变量,用于将相同数据类型的数据存储在数据单元中。
使用数组四步走:
1、声明数组
int[ ] a;
2、分配空间
a = new int[5];
3、赋值
a [0] = 8;
4、处理数据
a [0] = a[0] * 10;
int数组元素缺省值为0
18. 使用java.util.Arrays类
java.util包提供了许多存储数据的结构和有用的方法
Arrays类提供许多方法操纵数组,例如:排序,查询
Arrays类的sort()方法: 对数组进行升序排列
Arrays.sort(数组名);
19.String
.length( ) 数组为length, 字符串为length(), 集合为size
.equals() 比较字面量, = =比较是否为同一对象
.equalsIgnoreCase() 忽略大小写比较
.toUpperCase() 转为大写
.toLowerCase() 转换为小写
indexOf( ) 根据字符找位置,如果没有找到为-1。 主要用于邮箱验证等
lastIndexOf( ) 从后往左找
substring( ) 截取方法,含头不含尾
trim() 删除首尾空格
20. 字符串连接
方法1:使用“+”
方法2:使用String类的concat()方法
21.StringBuffer
StringBuffer sb = new StringBuffer();
StringBuffer sb = new StringBuffer("aaa");
sb.toString(); //转化为String类型
sb.append("**"); //追加字符串
注:StringBuffer str=”hello”错误,StringBuffer必须new,不能直接等于
15.对象:就是存在的具体实体,具有明确定义的状态和行为;
类:具有相同属性和共同行为的一组对象的集合
对象和类的区别:
类是定义了一个概念模型,而对象是这个模型的真实实体。
如何定义类:
语法:public class 类型{
属性类型 属性;
方法;
}
如何定义对象: 语法: 类名 对象名 = new 类名();
调用对象中的属性和方法用点运算符,例如: 对象名.属性;
面向对象的优点:
1、 便于程序模拟现实世界中的实体
2、 隐藏细节(封装)
3、 可重用
12.If条件的三种结构if、if-else、if-else if-else
比较switch和多重if结构
相同点
都可以实现多分支结构
不同点
switch
只能处理等值的条件判断,且条件是整型变量或字符变量的等值判断
多重if
处理在else部分还包含其它if结构,特别适合某个变量处于某个区间时的情况