java基础知识总结


1、Java语言发展史( 詹姆斯•高斯林(James Gosling))
  • 1977年获得了加拿大卡尔加里大学计算机科学学士学位,
  • 1983年获得了美国卡内基梅隆大学计算机科学博士学位,毕业后到IBM工作,设计IBM第一代工作站NeWS系统,但不受重视。后来转至Sun公司,
  • 1990年,与Patrick,Naughton和Mike Sheridan等人合作“绿色计划”,后来发展一套语言叫做“Oak”,后改名为Java。
SUN(Stanford University Network,斯坦福大学网络公司)

2、java语言平台
J2SE:标准版。开发普通桌面和商务应用程序提供的解决方案。
J2ME:小型版。开发电子消费产品和嵌入式设备提供的解决方案。
J2EE:企业版。开发企业环境下的应用程序提供的解决方案。

3、JVM,JRE,JDK
jvm:java虚拟机
jdk:JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。
JDK:JRE+JAVA的开发工具。
jre:包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等

4、注释
单行注释://注释文字
多行注释: /* 注释文字 */
文档注释:/** 注释文字 */

5、数据类型




(1)数据类型转换
隐式数据类型转换:取值范围小的数据类型与取值范围大的数据类型进行运算,会先将小的数据类型提升为大的,再运算
强制类型数据转换: b = (byte)(a + b);

(2)运算符
算术运算符:+,-,*,/,%,++,--
如果++或者--在变量的后面,先拿变量参与操作,后变量做++或者--
如果++或者--在变量的前面,先变量做++或者--,后拿变量参与操作
赋值运算符:=,+=,-=,*=,/=,%=
关系运算符:==,!=,>,>=,<,<=
逻辑运算符:&,|,^,!,&,&,||
A:&&和&的区别?
a:最终结果一样。
b:&&具有短路效果。左边是false,右边不执行。
&是无论左边是false还是true,右边都会执行
B:||和|的区别?
a:最终结果一样
b:||具有短路效果.左边是true,右边不执行
|是无论左边是false还是true,右边都会执行
三元运算符:(关系表达式)?表达式1:表达式2;

键盘录入:Scanner sc = new Scanner(System.in);

6、if语句
(1)if语句第一种格式:
if(关系表达式) {
语句体
}
(2)if语句第二种格式:
if(关系表达式) {
语句体1;
}else {
语句体2;
}
(3)if语句第三种格式:
if(关系表达式1) {
语句体1;
}else if (关系表达式2) {
语句体2;
}
else {
语句体n+1;
}

7、switch
首先计算出表达式的值
其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。

8、for语句
for(初始化语句;判断条件语句;控制条件语句) {
循环体语句;
}
A:执行初始化语句
B:执行判断条件语句,看其结果是true还是false
如果是false,循环结束。
如果是true,继续执行。
C:执行循环体语句
D:执行控制条件语句
E:回到B继续

9、while语句
while(判断条件语句) {
循环体语句;
}

10、do...while语句
do {
循环体语句;
}while((判断条件语句);

for,while和do...while的区别
虽然可以完成同样的功能,但是还是有小区别:
  • do…while循环至少会执行一次循环体。
  • for循环和while循环只有在条件成立的时候才会去执行循环体
  • for循环语句和while循环语句的小区别:
使用区别:控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用,如果你想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率。

11、获取随机数
Random r = new Random();
如:int number = r.nextInt(10);
产生的数据在0到10之间,包括0,不包括10。
括号里面的10是可以变化的,如果是100,就是0-100之间的数据

12、数组
数组是存储 同一种数据类型多个元素的容器。
格式1:数据类型[] 数组名;
格式2:数据类型 数组名[];
动态数据:数据类型[] 数组名 = new 数据类型[数组长度];
静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度

13、方法
简单的说:方法就是完成特定功能的代码块。
方法格式
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2…) {
函数体;
return 返回值;
}
定义方法注意事项
写一个方法首先有两点需要明确
1)返回值类型 明确功能结果的数据类型
2)参数列表 明确有几个参数,以及参数的类型

14、方法重载
在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。
方法重载特点
与返回值类型无关,只看方法名和参数列表
在调用时,虚拟机通过参数列表的不同来区分同名方法

方法的参数是基本类型的时候
形式参数的改变不影响实际参数。
形式参数:用于接收实际数据的变量
实际参数:实际参与运算的变量
方法的形式参数为引用数据类型
形式参数的改变影响实际参数。

15、面向对象和面相过程
面向过程:面向过程,其实就是面向着具体的每一个步骤和过程,把每一个步骤和过程完成,然后由
这些功能方法相互调用,完成需求。
特点:强调的是过程,所有事情都需要自己完成
面向对象:面向对象思想就是不断的创建对象,使用对象,指挥对象做事情。(如果有对象,直接用对
象,对我们直接提供服务)
特点:是一种更符合我们思想习惯的思想(懒人思想,我把事情自己不做,交给别人去做)
可以将复杂的事情简单化(对使用者来说简单了,对象里面还是很复杂的)
16、类与对象
属性 就是该事物的描述信息(事物身上的名词)
行为 就是该事物能够做什么(事物身上的动词)
成员变量 就是事物的属性
成员方法 就是事物的行为

17、private关键字
a:是一个权限修饰符。
b:可以修饰成员(成员变量和成员方法)
c:被private修饰的成员只在本类中才能访问。

18、this关键字
方法被哪个对象调用,this就代表那个对象

19、封装的概述和好处
封装概述:是面向对象编程语言对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作和修改。就像刚才说的年龄。
封装原则:
将不需要对外提供的内容都隐藏起来。
把属性隐藏,提供公共方法对其访问。
成员变量private,提供对应的getXxx()/setXxx()方法
好处:
通过方法来控制成员变量的操作,提高了代码的安全性
把代码用方法进行封装,提高了代码的复用性

20、构造方法
构造方法格式
a:方法名与类名相同
b:没有返回值类型,连void都没有
c:没有具体的返回值

21、String类
String类的构造方法
String(String original):把字符串数据封装成字符串对象
String(char[] value):把字符数组的数据封装成字符串对象
String(char[] value, int index, int count):把字符数组中的一部分数据封装成字符串对象
String类的判断功能
boolean equals(Object obj):比较字符串的内容是否相同
boolean equalsIgnoreCase(String str):比较字符串的内容是否相同,忽略大小写
boolean startsWith(String str):判断字符串对象是否以指定的str开头
boolean endsWith(String str):判断字符串对象是否以指定的str结尾
String类的获取功能:
int length():获取字符串的长度,其实也就是字符个数
char charAt(int index):获取指定索引处的字符
int indexOf(String str):获取str在字符串对象中第一次出现的索引
String substring(int start):从start开始截取字符串
String substring(int start,int end):从start开始,到end结束截取字符串。包括start,不包括end
String类的转换功能
char[] toCharArray():把字符串转换为字符数组
String toLowerCase():把字符串转换为小写字符串
String toUpperCase():把字符串转换为大写字符串
String trim():去除字符串两端空格
String[] split(String str):按照指定符号分割字符串

StringBuilder类概述
StringBuilder:是一个可变的字符串。字符串缓冲区类。
String和StringBuilder的区别:
String的内容是固定的
StringBuilder的内容是可变的
StringBuilder类的常用方法
A:构造方法:
StringBuilder()
B:成员方法:
public int capacity():返回当前容量 (理论值)
public int length():返回长度(已经存储的字符个数)
public StringBuilder append(任意类型):添加数据,并返回自身对象
public StringBuilder reverse():反转功能
StringBuilder和String的相互转换
StringBuilder -- >String
public String toString():通过toString()就可以实现把StringBuilder转成String
String -- >StringBuilder
StringBuilder(String str):通过构造方法就可以实现把String转成StringBuilder



22、IO流
分为 输入流输出流
  • FileWriter类使用
构造方法
FileWriter(String fileName) 传入一个文件的路径
成员方法
void write(String str) 向文件中写str
void flush() 将内存中的数据刷新到文件中
void close() 关流释放系统底层资源
其他方法:
void write(String str):写一个字符串数据
void write(String str,int index,int len):写一个字符串中的一部分数据
void write(int ch):写一个字符数据
void write(char[] chs):写一个字符数组数据
void write(char[] chs,int index,int len):写一个字符数组的一部分数据

如何实现数据的换行?
\n可以实现换行,但是windows系统自带的记事本打开并没有换行,这是为什么呢?因为windows识别的换行不是\n,而是\r\n
windows:\r\n
linux:\n
mac:\r
如何实现数据的追加写入?
FileWriter(String fileName, boolean append)
close()和flush()方法的区别:
flush():刷新缓冲区。流对象还可以继续使用。
close():先刷新缓冲区,然后通知系统释放资源。流对象不可以再被使用了。

23、FileReader类使用
FileReader读数据一次读取一个字符
FileReader(String fileName):传递文件名称

24、缓冲流介绍和使用
BufferedWriter:将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
BufferedReader:从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。














  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值