-
基本类型 int 无法直接转换为包装类 Long 类型
查看全部 -
装箱:把基本类型转换成包装类,使其具有对象的性质,又可分为手动装箱和自动装箱
拆箱:和装箱相反,把包装类对象转换成基本类型的值,又可分为手动拆箱和自动拆箱
手动自动区别,转换类型赋值和直接赋值
查看全部 -
Integer包装类的常用方法如上
查看全部 -
基本数据类型不具备对象的特性,不能调用方法;
可用对应的包装类来解决;除了int类型的包装类是Integer、char的包装类是Character之外,其他基本类型包装类是将类型首字母大写。
包装类提供了两大方法:将本类型和其他类型进行转换的方法;将字符串和本类型以及包装类相互转换的方法;
查看全部 -
在需要频繁对字符串进行修改操作时使用 StringBuilder 的效率比 String 要高。(线程安全问题)
查看全部 -
public class HelloWorld {
public static void main(String[] args) {
// 创建一个空的StringBuilder对象
StringBuilder str = new StringBuilder();
// 追加字符串
str.append("jaewkjldfxmopzdm");
// 从后往前每隔三位插入逗号
for(int i = str.length();i>0;i=i-3){
str.insert(i,",");
}
// 将StringBuilder对象转换为String对象并输出
System.out.print(str.toString());
}
}
查看全部 -
1、StringBuffer没有实现线程安全的功能所以运行时性能较好;StringBuilder是线程安全的,一般情况下创建一个内容可变的字符串对象时优先使用该类。
2、
查看全部 -
==: 判断两个字符串在内存中首地址是否相同,即判断是否是同一个字符串对象
equals(): 比较存储在两个字符串对象中的内容是否一致
PS:字节是计算机存储信息的基本单位,1 个字节等于 8 位, gbk 编码中 1 个汉字字符存储需要 2 个字节,1 个英文字符存储需要 1 个字节。同时,汉字对应的字节值为负数,原因在于每个字节是 8 位,最大值不能超过 127,而汉字转换为字节后超过 127,如果超过就会溢出,以负数的形式显示
查看全部 -
public class HelloWorld {
public static void main(String[] args) {
// 定义一个字符串
String s = "aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd";
// 出现次数
int num = 0;
// 循环遍历每个字符,判断是否是字符 a ,如果是,累加次数
for ( int i=0; i<s.length();i++ )
{
// 获取每个字符,判断是否是字符a
if (s.charAt(i)=='a' ) {
// 累加统计次数
num++;
}
}
System.out.println("字符a出现的次数:" + num);
}
}
查看全部 -
student.get(ID)是采用Map的get()方法检测是否存在值为ID的学生,如果没有,则返回null.
keySet()方法,返回所有键的Set集合。
取得Map的容量可用size()方法。
keyset()返回Map中所有的key以集合的形式可用Set集合接收,HashMap当中的映射是无序的。查看全部 -
import
java.util.Map;
public
class
MapTest{
//用来承装学生类型对象
public
Map<String,Student> students;
//构造器中初始化students;
public
MapTest(){
this
.students=
new
HashMap<String,Student>();}
/**测试添加:输入学生ID,判断是否被占用
若有被占用,则输入姓名,创建心学生对象,并且
添加到student中*/
public
void
tsetPut(){
//创建一个Scanner对象,用来获取输入的学生ID和姓名
Scanner console=
new
Scanner(System.in);
int
i=
0
;
while
(i<
3
){
System.out.println(
"请输入学生ID"
);
String ID=console.next();
//判断该ID是否被占用
Student st=student.get(ID);
if
(st==
null
){
//提示输入学生姓名
System.out.println(
"请输入学生姓名"
);
String name=console.next();
//创建新的学生对象
Student newStudent=
new
Student(ID,name);
//通过调用students的put方法,添加ID-学生映射
student.put(ID,newStudent);
System.out.println(
"成功添加学生:"
+students.get(ID).name);
i++;
else
{
System.out.println(
"该学生ID已被占用!"
);
continue
;}}}}
//测试Map的keySet方法
public
void
testKeySet(){
//通过keySet方法,返回Map中的所有“键”的Set集合
Set <String> keySet=students.keySet();
//取得students的容量
System.out.pritnln(
"总共有:"
+students.size()+
"个体学生"
);
//遍历keySet,取得每一个键,再调用get()方法取得每个键对应的value
for
(String stuId:keySet){
Student st=students.get(stuId);
if
(st!=
null
)
System.out.println(
"学生:"
+st.name);
}
}
public
static
void
main(String args){
MapTest mt=
new
MapTest();
mt.testPut();
mt.testKeySet();
}}
查看全部 -
Map接口
1. Map接口提供了一中映射关系,其中的元素是键值对(key-value)的形式存储的,能够实现根据Key快速查找value。Key-value可以是任何对象,是以Entry类型的对象实例存在的。
2.Key是不可以重复的,Value是可以重复的。Key-value都可以为null,不过只能有一个key是null。
3.map支持泛型,Map<K,V>
4.每个键最多只能映射到一个值
5.Map接口提供了分别返回key值集合、value值集合以及Entry(键值对)集合的方法
6.通过put<K key,V value>,remove<Object key>操作数据
7.HashMap中的Entry对象是无序排列的,HashMap是Map的一个重要实现类,也是最常用的,基于哈希表是实现查看全部 -
Set接口:
1.Set是元素无序并且不可以重复的集合,被称为集(而不是集合)。
因为Set中的元素是无序的,所以在遍历的时候不能使用get方法,只能使用foreach或者iterator方法。
2.HashSet——哈希集是Set的一个重要实现类。
3.Set中,添加某个对象,无论添加多少次,最终只会保留一个该对象(的引用),并且,保留的是第一次添加的哪一个。
查看全部 -
泛型中除了可以添加规定的类型还可以添加规定类型的子类型。
定义子类型的时候要在父类型中添加一个无参的构造方法,否则出错。因为调用子类型的构造方法时,系统会默认调用父类的无参构造方法(super();)。
1.泛型集合中不能使用基本数据类型List<int>course。必须为引用类型List<Course> course
2.可以通过使用包装类限定允许存入的基本数据类型。查看全部 -
集合中的元素,可以是任意类型的对象(对象的引用)
如果把某个对象放入集合,则会忽略他的类型,把它当做object处理
泛型则是规定了某个集合只可以存放特定类型的对象,会在编译期间进行类型检查,可以直接指定类型获取集合元素,泛型不接受基本数据类型
this.courses = new ArrayList<>(); //圆括号表示调用了构造方法
查看全部
举报