1.单引号和双引号以及char和String的区别
单引号引的数据 是char类型的,双引号引的数据 是String类型的;char定义时用单引号,只能有一个字母,数字。char c='c';
而String用双引号,可以是一个 ,也可能是多个字母,汉字等。就是所谓的字符串。String s = "a";String s="adsaf";
char只是一个基本类型,而String 可以是一个类,可以直接引用。比如char c='c';不能直接对c调用方法。
String s="abc"; 这时可以调用s.charAt(0);等方法,因为String是类,这是就是对象的调用了
2.ArrayList常用方法总结
(1)构建ArrayList
1.不初始化起容量 ArrayList<egg> al = new ArrayList<egg>();//默认容量为0,当数组容量满时数组会自动一当前数组容量的2倍扩容
2.初始化容量 ArrayList<egg> al = new ArrayList<egg>(3);//初始容量为3
3.以一个集合或数组初始化 ArrayList<egg> al = new ArrayList<egg>(a);//a为集合或数组
(2)添加元素
1.ArrayList名.add(object value)
ArrayList<egg> al = new ArrayList<egg>();
al.add("a");
2.将元素插入到索引处(不过其有一定的限制性,必须在数组长度以内插入数组)
al.insert(int index,object element);
(3)删除元素
al.remove(object obj); //移除数组中的obj元素
al.remove(int index); //移除索引为index的数字元素
al.removeRange(int indext,int count); //移除从索引index开始,移除count个元素
(4)查找元素
查找元素有Contains()、IndexOf()、LastIndexOf()3中方法
al.Contains(object obj);//查找数组中是否有obj元素,返回类型为boolean存在返回true;
IndexOf()有两个重载方法 起用法如下:
//int indexOf(Object o)
al.IndexOf(object obj);//从0开始查找obj元素,只第一个obj元素,并返回起在数组中的位置,如果不存在,返回-1;
al.IndexOf(object obj, int startIndex); //从startIndex开始查找obj元素,只第一个obj元素,并返回起在数组中的位置,
al.IndexOf(object obj, int startIndex, int count); //从startIndex开始想后查找count个元素,如果存在obj元素,则返回其在数组中的位置
al.LastIndexOf()方法与IndexOf()用法相同,它也有两个重载,其不同的是,LastIndexOf(obj)是查找要obj最后出现的位置
(5)获取元素
按索引获取元素:al.get(index);
获取ArrayList数组长度 : al.size();
检查是否为空 al.isEmpty(); //boolean isEmpty()
遍历ArrayList
1.获取数组长度,循环遍历 for(int i = 0, i < al.size(); i++){
2.使用for-each循环 for(object e : al){
3.System.exit(0);是什么意思
System是一个Java类,调用exit(0)方法终止虚拟机也就是退出你的Java程序,括号里面的是参数,进程结束的返回值。
4.构造方法
(1)一个类即使什么都不写,它也会存在一个方法
class Test{
//默认存在
//public Test(){
}
}
(2)这个Test()方法就叫构造器,构造器有以下两个特点:
-
-
-
-
- 必须和类的名字相同
- 必须没有返回类型,也不能写void
-
-
-
(3)构造器的作用:
1.实例化一些初始值
2.new 一个对象,本质是在调用构造器
(4)一旦定义了有参构造,如果想使用无参构造,无参就必须显示定义
(5)idea的快捷键:alt+ins(insert)会生成构造器
5.Scanner 的nextInt()之后执行 nextLine()或者next()时 会直接跳过跳过的问题
首先来简单了解一下nextInt()和nextLine()它们的运行机制:
nextInt():接收一个整型数字,注意,它只接收数字;
nextLine():接收一串字符串,包括空格、制表符、换行符。 next():接收一个字符串,包括制表符换行符。
这样一来原因就很明显了,当我们输入数字后,是不是按下了回车键,这个时候,nextInt()从缓冲区把我们输入的数字读走了,但留下了最后的换行符,等运行到nextLine()的时候,它开始读缓冲区里的内容,然而好巧不巧的是,刚好缓冲区里留有一个换行符,相当于还没给我们机会去输入东西,就按回车结束了
解决办法,加一个scanner.next()或者scanner.nextLine() ,来吸收缓冲区中的换行符(回车)
6.java中的GC是什么?
gabage collection 垃圾回收的意思。Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。