Java学习笔记
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java学习笔记,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含9279字,纯文字阅读大概需要14分钟。
内容图文
![Java学习笔记](/upload/InfoBanner/zyjiaocheng/732/4e17032fa74943dfb6ffbe51cfe801f1.jpg)
文章目录
- Object类
- Scanner类
- String类
- StringBuffer类
- Arrays类
- 包装类
- 正则表达式
- Math类
- system类
- BigInteger类
- BigDecimal类
- Date类
- Calendar类
- 集合框架
Object类
1.类Object是类层次结构的根类。每个类都使用Object作为超类。
每个类都直接或间接地继承自Object类
2.Object类的方法
public int hashCode():返回该对象的哈希码值。
注意:哈希值是根据哈希算法计算出来的一个值,这个值和地址值有关,但不是实际地址值,你可以理解为地址值。
public Class final getClass():返回对象的字节码文件对象。
Class类的方法:
public String getName():以String的形式返回此Class对象所表示的实体名称
public String toString():返回该对象的字符串表示。建议所有子类都重写方法,把该类的所有成员变量返回值即可。可以自动生成toString方法(eclipse)
注意:直接输出一个对象的名称其实就是调用该对象的toString方法。
public boolean equals (Object obj):指示其它某个对象是否与此对象相等。默认比较的地址值是否相同比较地址值一般来说意义不大,所以我们要重写该方法。
一般都是重写为用来比较对象的成员变量值是否相等。(eclipse可自动完成)
equals比较:
引用类型:默认情况下,比较的是地址值
不过,我们可以根据情况自己重写该方法。一般重写都是自动生成,比较对象的成员变量值是否相同。
‘==’比较:
基本类型:比较的就是值是否相等
引用类型:比较的地址值是否相同
instanceof:判断该对象名是否是该类名一个对象。
protected void finalize():当垃圾回收器确定不存在该对象的更多引用时,由对象的垃圾回收器调用此方法。用于垃圾回收,但是什么时候回收不清楚。
protected Object clone():创建并返回此对象的一个副本。
A.重写该方法
B:Cloneable:此类实现了Cloneable接口,以指示Object.clone()方法可以合法地对该类实例进行按字段复制。接口是标记接口,告诉我们实现该接口的类就可以实现对象的复制了。
Scanner类
Scanner:用于接收键盘录入数据
A:导包
B:创建对象
C:调用方法
常用的两个方法:
public int nextInt():获取一个int类型的值
public String nextLine():获取一个String类型的值。
出现问题了:
先获取一个数值,再获取一个字符串会出现问题。原因就是那个换行符号的问题
解决办法:
A:先获取一个数值后,再创建一个新的键盘录入对象获取字符串。
B:把所有的数据都先按照字符串获取,然后要什么,你就对应的转化为什么。
String类
字符串:就是由多个字符组成的一串数据,也可以看成是一个字符数组。
A:字符串字面值"abc"也可以看成是一个字符串对象
B:字符串是常量,一旦被赋值,就不能被改变。
构造方法:
字符串的方法:
public int length():返回字符串的长度。
字符串直接赋值的方式是先到 符串常量池里面去找,如果有就直接返回,没有就创建并返回。
字符串一旦被赋值就不能被改变,值不能变,但引用地址能变。
String s=new String (‘hello’) String s='hello’的区别
前者会创建两个对象,后者创建1个对象。
字符串如果是变量相加,先开空间再拼接。
字符串如果是常量相加,是先加,然后在常量池里找,如果有就直接返回,否则就创建。
判断功能:
boolean equals(Object obj):比较字符串的内容是否相同,区分大小写
boolean equalsIgnoreCase(String str):比较字符串的内容是否相同,忽略大小写
contains(String str):判断大字符串中是否包含小字符串
startsWith(String str):判断字符串是否以某个指定的字符串开头
endsWith(String str):判断字符串是否以某个指定的字符串结尾
isEmpty():判断字符串是否为空。
注意:字符串为空和字符串对象为空
String s=" "
String s=null
获取功能:
int length():获取字符串的长度
char charAt(int index):获取指定索引位置的字符
int indexOf(int ch):返回指定字符在此字符串中第一次出现的索引
int indexOf(String str):返回指定字符串在此字符串中第一次出现的索引
int indexOf(String str,int fromIndex):返回指定字符在此字符串中从指定位置后第一次出现的索引
String substring(int start):从指定位置开始截取字符串,默认到末尾
String substring(int start,int end):截取字符串
转换功能
byte[] getBytes():把字符串转换为字节数组
char[] toCharArray():把字符串转化为字符数组
static String valueof(char[] chs):把字符数组转成字符串
static String valueof() 把任意类型的数据转成字符串
String toLoweCase():把字符串转化为小写
String toUppercase():把字符串转化为大写
String concat(String str):把字符串拼接
替换功能:
String replace(char old,char new)
String replace(String old,String new)
去除字符串两空格
String trim()
按字典顺序比较两个字符串
int compareTo()
int comparetoIgnoreCase()
StringBuffer类
线程安全的可变字符序列。长度和内容可变,做字符串的拼接不会浪费太多资源。
构造方法:
StringBuffer():无参构造
StringBuffer(int capacty):指定容量的字符串缓冲区对象
StringBuffer(String str):指定字符串内容的字符串缓冲区对象
方法:
int capacity():返回当前容量。理论值
int length():返回长度,实际值
append:可以把任意类型添加到字符缓冲区里面,并返回字符缓冲区本身
insert:在指定位置把任意类型的数据插入到字符缓冲区里面,并返回字符缓冲区本身。
deleteCharAt:删除指定位置的字符,并返回本身
delete:删除从指定位置开始指定位置结束的字符,并返回本身。
replace:从start开始到end用str替换
reverse:反转
substring:截取字符串,返回string对象。
string和stringbuffer的相互转换
不能把字符串的值直接赋值给stringbuffer
string转stringbuffer:构造方法和append方法
stringbuffer转string:构造方法,tostring方法。
string.stringbuffer,stringbuilder的区别:
A.String是内容不可变的,而stringbuffer,stringbuilder都是内容可变的。
B:stringbuffer是同步的,数据安全,效率低;stringbuilder是不同步的,数据不安全,效率高。
stringbuffer和数组的区别?
二者都可以看成是一个容器,装其它的数据
但是呢,stringbuffer的数据最终是一个字符串数据
而数组可以放置多种数据,但必须是同一种数据类型的
形式参数问题
string 作为参数传递
stringbuffer作为参数传递。
形式参数:
基本类型:形式参数的改变不影响实际参数
引用类型:形式参数的改变直接影响实际参数
注意:string作为参数传递,效果和基本类型作为参数传递是一样的.
排序:
冒泡排序
相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处。
选择排序
从0索引开始,依此和后面元素比较,小的往前放,第一次完毕后,最小值出现在了最小索引处。
查找:
基本查找:数组元素无序
二分查找:数组元素有序
A:定义最大索引,最小索引
B:计算出中间索引
C;拿中间索引的值和要查找的值进行比较
相等:就返回当前中间索引
不相等:
大 左边找
小 右边找
D: 重新计算出中间索引
大 左边找
max=mid-1
小 右边找
min=mid+1
E 回到B
Arrays类
针对数组进行操作的工具类。比如说排序和查找。
tostring(int [] a):把数组转成字符串。
sort():排序
binarySearch(int[] a.int key):二分查找
包装类
为了对基本数据类型进行更多的操作,更方便的操作,java就针对每一种基本数据类型提供了对应的类类型,包装类类型。
int --string
String.valueOf(number)
String – int
Integer.parseInt(s)
十进制到其它进制:
public static String toString(int i,int radix)
其它进制到十进制
public static int parseInt(String s,int radix)
jdk5的新特性
自动装箱:把基本类型转换为包装类类型
自动拆箱:把包装类类型转化为基本类型
针对-128到127之间的数据,做了一个数据的缓冲池,如果数据是该范围的,每次并不创建新的空间。
Integer的数据直接赋值,如果在缓冲区内,就直接从缓冲区内取值。
正则表达式
1.符合一定规则的字符串
A 字符
x 字符x. 'a’表示字符a
\ 反斜线字符,相当于别的语句里的一个杠
\n换行符
\r 回车符
B:字符类
[abc] a b 或c(简单类)
[^abc] 任何字符,除了a b或c
[a-zA-Z] a到z或A到Z,两头的字母包括在内
[0-9] 0-9的字符都包括
C;预定义字符类:
. 任何字符
\d 数字[0-9]
\w 单词字符[a-zA-Z_0-9]
D:边界匹配器
^ 行的开头
$ 行的结尾
\b 单词边界
E :数量词
X? 一次或一次也没有
X* 零次或多次
X+ 一次或多次
X{n},恰好n次
X{n,}至少n次
X{n,m} 至少n次,但是不超过 m次
匹配功能: matches
分割功能:split
替换功能:replaceAll
获取功能:
Pattern和Matcher类的使用
模式和匹配器的使用顺序
Math类
celi:向上取整
floor:向下取整
round:四舍五入
system类
方法:
public void gc():运行垃圾回收
public static void exit():终止当前正在运行的java虚拟机。
currentTimeMillis():返回以毫秒为单位的当前时间。
arraycopy(): 复制数组
BigInteger类
表示比Integer范围更大的整数
add
subtract
multiply
divide
divideAndRemainder
BigDecimal类
由于在运算的时候,float和double类型很容易丢失精度,所以,为了能精确的表示,计算浮点数,Java提供了Bigdecimal.:不可变的任意精度的有符号十进制数,可以解决数据丢失问题。
Date类
表示特定的瞬间,可以精确到毫秒。
构造方法:
public Date()
public Date(long date):根据给定的毫秒值创建日期对象
getTime():获取时间,以毫秒为单位
setTime():设置时间
DateFormat类:可以进行日期和字符串的格式化和解析,但是由于是抽象类,所以使用具体子类SimpleDateFormat
SimpleDateFormat的构造方法
SimpleDateFormat()
Date–String
public final String format(Date date)
String–Date(解析)
parse()
SimpleDateFormat的构造方法:
SimpleDateFormat():默认模式
SimpleDateFormat(String pattern):给定的模式
这个模式字符串该如何写呢
通过查看API,我们就找到了对应的模式
年 y
月 M
日 d
时 H
分 m
秒 s
Calendar类
是一个抽象类,它为特定瞬间与一组诸如YEAR MONTH等日历字段之间的转换提供了一些方法
get()
add()
set()
集合框架
数组和集合的区别?
A:长度区别
数组的长度固定
集合长度可变
B:内容不同
数组存储的是同一种类型的元素
而集合可以存储不同类型的元素
C:元素的数据类型
数组可以存储基本类型,集合只能存储引用类型
Collection:是集合的顶层接口
功能:
1.添加功能:add:添加一个元素
addAll:添加一个集合的元素
2.删除功能:clear:移除所有元素
remove:移除一个元素
removeAll:移除一个集合的元素
3.判断功能:
contains:判断集合中是否包含指定元素
containsAll:判断集合中是否包含指定的 集合元素
isEmpty:
4,获取功能
iterator()
5.长度功能
size
6.交集功能
retainAll
7.把集合转为数组
toArray
List集合的特有功能
A:add(int ,Object):在指定位置添加元素
B:get(int index):获取指定位置的元素
C:列表迭代器:
List集合的特有迭代器。
listIterator()
D:删除功能
remove()
E:修改功能
set()
List:面试题List的子类特点
ArrayList:
底层数据结构是数组,查询快,增删慢
线程不安全,效率高。
Vector:
底层数据结构是数组,查询快,增删慢。
线程安全,效率低。
LinkedList:
底层数据结构是链表,查询慢,增删快。
线程不安全,效率高。
选择:
要安全吗?
要:Vector(即使要安全,也不用这个了。后面有替代的。
不要:ArrayList或者LinkedList
内容总结
以上是互联网集市为您收集整理的Java学习笔记全部内容,希望文章能够帮你解决Java学习笔记所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。