1. java 开发环境
JVN: java虚拟机, 加载.class并运行.class
JRE :java运行环境,JRE=JVM+java系统类库
JDK :java 开发工具包。JDK =JRE+编译,运行等工具
2.
1)变量
声明E.g: int a;
赋值:int a =10;
变量在使用之前必须初始化
2)八种基本数据类型
byte:字节型,用于存储整数的,占用1个字节,范围-128到127之间.
short:短整型,用于存储整数的,占用2个字节,范围-32768到32767之间.
int:整型,用于存储整数的,占用4个字节,范围-2^31到2^31-1之间.
long:长整型,用于存储整数,占用8个字节,范围-2^63到2^63-1之间.
float:单精度浮点数,占用4个字节,不能表示精确的值.
double:双精度浮点数,用于存储小数的,占用8个字节,不能表示精确的值.
boolean:布尔型,用于存储true和flase的,占用1个字节
char: 字符型,采用unicode字符编码形式,用于存储单个字符,占用2个字节,范围0到65535之间.
3)类型间的转换
基本数据类型从小到大:
byte-short-int-long-float-double
char--
*自动类型转化/隐式类型转化
*强制类型转换-------大类型到小类型
3. 运算符
1) %---取余(5%2)//1
/----除(5%2)//2
+-----加
*-----乘--(a*=2)//a*2
++/--:
a++的值为a****************a--的值为a
++a的值为的值为a+1**********--a的值为a-1
2)关系运算符
成立true,不成立flase -------><,>=,<=,==,!=
3)逻辑运算符
&&(并且)---------------俩边真则为真,见flase则flase
| |(或者)-----------------有真则真,见true则true
!( 非 )----------------取反,非真则假,非假则真
逻辑运算符是建立在关系运算符基础之上的,逻辑运算符结果也是boolean类型;
4)赋值运算符
简单赋值---- =, 扩展赋值---------a+=10//a=a+10等
5) 条件三目运算符
boolean?数 1数 2------boolean判断,真数1.假数2
4.分支结构
if(boolean){ 有条件执行的语句}else if(){ }
执行过程---------判断boolean,true结束,flase继续执行
swich...case
优点:效 率高,结构清晰 缺点:只能对整数判断相等
break:跳出打断
default:所有case都未匹配时才执行
continue:跳过循环体中剩余语句而进入下一次循环
5.循环结构
**1)for(①;②;③){
④
}
( )中的“;”不可以缺失
①:初值,初始值:必须为0(不对,但很多场景适用)
②:条件:限制循环是否继续执行。(条件一般都是比较运算)
③:步长,增量:是将循环变量从初值变化到条件限制的标准。
④:循环内容
执行循序: ① - ② - ④ - ③
continue:跳过循环体剩余语句而进入下一次循环
break:跳出循环
嵌套循环:外循环走一次,内循环走所有次
**2)while---先循环再做
while(①){
②
}
①:条件
②:循环内容
执行顺序: 判断① - 成立继续②
- 不成立 退出
较准确的写法:
①
while(②){
④
③
}
**//3)do-while----先做再循环
do{
②
}while(①);
执行顺序:② - 判断① - 成立继续②
- 不成立 退出
do-while 和 while 区别:do-while 至少比 while 多执行一次
6.数组
***引用数据类型,相同数据类型元素的集合
1) 定义--- int[ ] arr =new int[ 10];
2)初始化(初始化的是数组中元素)
int [ ] arr =new int [ 3 ];//------0,0,0
int [ ] arr ={1,2,3 };//-------1,2,3
int [ ] arr =new int[ ]{1,2,3 }//----1,2,3
arr =new int [ ]{2,5,8 }//-----2,5,8
3)通过数组.lenght获取数组的长度
4)通过下标索引来访问数组中的元素,数组的下标从0开始,最大到数组的长度减1
7.方法
1)访问权限从低到高 private,默认的(default),protected,public
2)向上造型:超类型引用指向派生类的对象,能造型成为数据类型:超类+所实现的接口
3)***重写:一定发生在俩个类中,并且是父子关系,方法名相同,参数列表不同
---------方法被调用时,看对象的类型,遵循俩同俩小一大原则
+++++***方法名相同,参数列表相同
****派生类方法的返回值类型小于等于超类方法,派生类抛出的的异常小于或等于超类方法
******派生类方法的访问权限大于或等于超类方法
4)重载
*** 方法名相同,参数列表不同(参数个数不同,参数类型不同)
5)构造方法(constructor):构造器 构建器
作用:给实例变量赋初始值
若自己不写则默认有一个无参构造,若自己写了则不再默认提供
构造方法也属于类中成员,可以用4种访问修饰符来修饰
6)抽象方法
由abstract修饰,只有方法的定义,没有具体实现,连{ }都没有
****抽象类:包含抽象发法的类必须是抽象类,抽象类不能被实列化(new 对象),抽象类是需要被继承的派生类
****封装共有的属性和行为----代码复用
*******为所有的类提供共有的属性和行为----向上造型
7)静态方法
*1由static修饰,属于类,存储在方法区中,只有一份,通过类名点访问没有隐式this,访问不了实际变量
*2 static final
必须声明初始化,常量名所有字母都大写,多个单词用-分离
8 类
类是由class来定义的,类和接口和抽象类的访问权限只能是public或默认的,类中成员的访问权限4种都可以,包含抽象方法的类必须是抽象类,派生类必须重写所有抽象方法
1)成员内部类
内部类只服务于外部类,对外不具有可见性,可以直接访问外部类成员,包括私有的
2)匿名内部类
若想创建一个派生类的对象,并且对象只被创建一次,可以创建匿名内部类
在匿名内部类中,默认外面的变量为final
9 接口
**是一种引用数据类型,由interface定义,访问权限是公开的
**接口不能被实列化
**接口需要被实现 /继承的,实现类/派生类必须重写抽象方法
**重写接口中的抽象方法,访问权限必须是piblic
** 一个类型可以实现多个接口,用逗号分离,若有继承又实现时,应先继承后实现(imlements)
10 多态
1)对象的多态
**同一类型的引用指向不同对象时,有不同的实现------所有抽象方法都是多态的
2)行为的多态
***同一对象被造型时不同的类型时,有不同的功能-----所有对象都是多态的
3)方法的动态
重写和重载
11 内存管理
1)堆:new出来的对象,也包括实列变量----存储
2)栈:存储局部变量,包括方法的参数
3)方法区:存储 .class字节码文件(包括静态变量,所有方法),方法就一份,通过this来区分具体的访问方法
12 String
字符串类型,字符串一但创建对象内容永远无法改变,但字符串可以重新赋值---不变对象
1)常量池:字符串常量池(堆中)
13 String方法
**length()-----声明字符串型变量并赋值,获取字符串的长度并输出
***indexOf()/lastIndexOf()------声明字符串型变量并赋值,检索当前字符串中给定字符串的位置并输出,检索给定字符串在当前字符串中最后一次出现的位置并输出
***substring()------声明字符串型变量并赋值为一个网址,截取域中的名字并输出,截取整个域名并输出
*** trim()-----声明字符串型变量并赋值,去除当前字符串两边的空白字符
****charAt()----声明字符串型变量并赋值,返回当前字符串指定位置上的字符并输出
*** startsWith()/endsWith()-------声明字符串型变量并赋值,判断当前字符串是否是以给定的字符串开始的/结束的
******toUpperCase()/toLowerCase()-----声明字符串型变量并赋值,将当前字符串中的英文部分转为全大写/全小写
******valueOf()-----声明一个整型变量和一个浮点型变量,将其数据类型转换为String并输出
14 StringBuilder
SrtringBuilder:非线程安全,并发处理的,性能稍快-----是Jdk1.5 后推出的一个类
StringBuffer:是线程安全,同步处理的,性能稍慢-----是jdk1.0与String一起推出的类
StringBuilder:
append()追加、replace()替换、delete()删除、insert()插入、reverse()反转
15派生类重写equals()的基本规则
1)俩个对象必须同一个类型,若类型不同返回false
2),若参数对象为null,返回false
3)原则上俩个对象要比较对象属性是否相同
16正则表达式
matches() -----使用给定的正则表达式验证当前字符串的格式是否符合要求
split()-------将当前字符串按照满足正则表达式部分进行拆分,并将拆分的部分以String【】返回
replaceAll------将当前字符串满足正则表达式部分替换为给定的字符串
17Object
鼻祖,所有类间接或直接继承Object,为了多多态
toString()-----类的全称@地址,没有参考意义,长重写toString()返回具体数据
equals()-------比较地址,没有参考意义,长重写equals()来比较具体的属性值
18包装类 -------可以将字符串转换为对应的基本数据类型(前提该字符表达正确基本类型值)
int ----Interger
char----Character
其余6种类型首字母大写
本文全面介绍了Java编程的基础知识,包括开发环境搭建、基本数据类型、运算符、流程控制、数组及方法等内容,适合初学者入门。
3万+

被折叠的 条评论
为什么被折叠?



