一。往HashSet添加元素的时候,HashSet会先调用元素的hashCode方法得到元素的哈希值 ,
情况1: 如果算出元素存储的位置目前没有任何元素存储,那么该元素可以直接存储到该位置上。
情况2: 如果算出该元素的存储位置目前已经存在有其他的元素了,那么会调用该元素的equals方法与该位置的元素再比较一次
,如果equals返回的是true,那么该元素与这个位置上的元素就视为重复元素,不允许添加,如果equals方法返回的是false,那么该元素运行添加。
二。
charAt() 方法用于返回指定索引处的字符。索引范围为从 0 到 length() - 1。
三。// “” :空分隔符,可以将“字符串”分割为单个“字符”
String[] ret = st.split(“”);
四。
1.length
length是针对各种数组的属性,比如int[], char[], byte[], string[];
2。length()
length()是针对String的方法,一般用于 if(s == null || s.lenght() == 0){return ;}
3 。size()
size()是针对集合类的方法, 一般用于 Set( HashSet,TreeSet), List(ArrayList, LinkedList), Map(HashMap, SortedMap…等) 这些集合类获取集合元素的数量。
五。在JDK中,整形类型是有范围的,最大值为Integer.MAX_VALUE,即2147483647,最小值为Integer.MIN_VALUE -2147483648。
对整形最大值加1,2147483648(越界了),那么此时值为多少呢?结果是-2147483648,即是Integer.MIN_VALUE。
类似的,对Integer.MIN_VALUE取反或者取绝对值呢?仍为Integer.MIN_VALUE,因为值为-2147483648,绝对值2147483648超过Integer.MAX_VALUE 2147483647。
所以就有以下结果
Integer.MAX_VALUE + 1 = Integer.MIN_VALUE
Math.abs(Integer.MIN_VALUE) = Integer.MIN_VALUE (绝对值)
Long,short,byte的结论是相同的。
math.abs(a)
返回 参数a的绝对值。如果参数为非负数,则返回该参数。如果参数为负数,则返回该参数的相反数。
注意,如果参数等于 Integer.MIN_VALUE 的值(即能够表示的最小负 int 值),那么结果与该值相同且为负。
六。删除链表节点
i++ 不能作为左值,而++i 可以。
i++ 返回原来的值,++i 返回加1后的值。
新增链表节点
七。电话号码的字数组合
List list =new arraylist<>();
list.add(“”);
listlist2=new linkedlist<>();
list为一个接口。
LinkedList 是基于双链表实现的,而 ArrayList 是基于动态数组实现的。因为对链表的添加删除操作只需要改变指针就可以了,而在数组中添加删除时,会导致该元素后面的所有的元素被移动,因此在进行添加删除时,LinkedList 的效率要优于 ArrayList。同理,因为对链表的查询操作需要不断移动指针,而数组却不用,因此在进行查询操作的时候,ArrayList 的效率要优于 LinkedList。
Map<Charactor,Integer> map =new HashMap<>();
map.put();map.get();
递归:自己调用自己,注意死循环。必须要有个结束条件
delete()方法和deleteCharAt()方法都是用来删除StringBuffer字符串指定字符索引的方法,其中delete(int a,int b)方法:包含两个参数,使用时删除索引从a到b(包括a不包括b)的所有字符;deleteCharAt(int s)方法:只有一个参数,使用时删除索引为a的字符。如StringBuffer stb=new StringBuffer()
“Character 是原始类型 char 的包装类,跟String没啥关系的。。
char是字符类型(‘’),string是字符串类型(“”),string可以看成是由char组成的列表。char只能存放单个字符,而String则是存放多个字符(字符串)。
七。
rownum函数是oracle中常用到的一个返回编号的函数,系统会按顺序分配为从查询返回的行的编号,返回的第一行的编号是1,第二行是2,后面以此类推x,这个函数可以用来限制查询返回的总行数
select sala as SecondHighestSalary from (
select * from
(select rownum num,id sala from
(select to_number(salary) id from Employee emp order by salary desc )
) where rownum<3 ) where num>1
八。判断字段是否为空
NVL函数的格式如下: NVL(expr1,expr2)
含义是:如果oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值。
NVL2函数
NVL2函数的格式如下: NVL2(expr1,expr2, expr3)
含义是:如果该函数的第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第三个参数的值。
NULLIF函数 NULLIF(exp1,expr2)
函数的作用: 是如果exp1和exp2相等则返回空(NULL),否则返回第一个值。
九。第n高的工资,function函数
十。用户取消率,没执行出来
十一。存在重复元素
int [] nums=[1,2,3,3,4]
Arrays.sort(nums);对数字从小到大排序。
abstract修饰的类为抽象类
java >>1得意思是二进制右移一位。数被除2不取余