Java常见知识点

1.位移
      用最有效的方法计算2*16

      2<<4  =2* (2的4次方) 以2位基数

2.局部变量不允许使用private之类修饰符

3.java语言中char类型变量占16位(即2个字节)的存储空间,因此可以存储任何字符(英文字母,汉字等)

4. 3-2.4==0.6为false,需要借助BigDecimal才可以得到精确计算的浮点数运算结果。

5. &位运算符  &&逻辑运算符,这要左边的为false就不再执行运算,效率更高; =赋值运算符 ==关系运算符

6.十进制与二进制转换 整除2为0 右边写0,否则写1 ,最后从底下往上面写

7.   9/2=4     9/2.0=4.5

8.递归调用(自己调自己)

public int countSum(int n) {
		sum += n;
		sum = n == 0 ? sum : countSum(--n);
		return sum;
}

9.少用复合赋值运算符 += -=之类,避免出错

10.将一个数组赋值到另一个数组Arrays.copyOfRange()

11.查找数组最大最小值:

(1).遍历 

for (int i = 0; i < arr.length - 1; i++) {
			if (max < arr[i]) {
				max = arr[i];
			}
			if (min > arr[i]) {
				min = arrays2[i];
			}
}

(2)先排序 Array.sort(arr),然后去第一个和最后一个元素

12.面向对象的三大特点:封装、继承、多态。封装隐藏实现细节,使得代码模块化;继承可以扩展已经
存在的代码模块,目的都是为了代码重用;而多态是为了减少代码之间的紧密耦合,增加应用程序的灵活性。
13.重载:方法名一样,参数不一样。
14.类是抽象的概率,对象是类的实例。
15.静态语句块:使用其所在类时就分配了内存,并自动执行块内代码。

16.抽象类概念:
有时候,基类并不与具体的事物相联系,而是指标报一种抽象的概念,用以为他的派生类提供一个公共的界面。因此,java引入了抽象类的概念。
特点:
(1)抽象类只能作为其他类的基线,不能被实例化。
(2)抽象可以包括抽象和非抽象成员;
(3)派生类必须覆盖重写继承而来的抽象成员。
17.抽象方法:在声明方法时加上abstract,需要注意4点:
(1)只能声明在抽象类
(2)不能使用static,private修饰,可以使用protect,public修饰;
(3)抽象方法没有具体实现,所以方法体只有一个分号;
(4)抽象类派生一个非抽象类时,需要重写抽象方法,以提供具体实现。
18.接口与抽象类的区别
(1)抽象类可以提供成员的实现细节,而接口不行设计抽象时,如果要求提供成员的实现细节,可选择抽象类。
(2)设计抽象是选择抽象类,在以后的版本中可以随便添加新成员。而接口就没有那么灵活,只有修改现有的代码才能添加新成员。
(3)一个类要求实现多个接口,但只能实现一个抽象类,如果实现类类似于多继承的效果,可以选择接口。
19.在JAVA中,由于子类隐藏了父类的成员变量,或者重写了父类的方法,此时需要通过super才操作父类被隐藏的变量和重写(覆盖)的方法。
(1)重写的方法修饰符大于等于父类的方法
(2)子类不能重写父类final和static修饰的方法
20.重载与重写的区别:
(1)重写必须继承,重载不用。
(2)重写的方法名,参数数目相同,参数类型兼容,重载的方法名相同,参数列表不同。
(3)重写的方法修饰符大于等于父类的方法,重载和修饰符无关。
(4)重写不可以抛出父类没有抛出的一般异常,可以抛出运行时异常
21.克隆概念:若需修改一个对象,同时不想改变调用者的对象,就要制作该对象的一个本地副本。
Clone是“克隆”的意思,即制作完全一模一样的副本。这个方法在基础类Object中定义成“protected”(受保护)模式。
22.内部类也是可以被继承的,用点分式;内部类调用外部类隐藏成员变量,也是用点分式。

23.自动装包:基本类型自动装为包装类;自动拆包:包装类自动转为基本类型。

24.String str= null; 与String str="";的区别:
(1)null并没有分配内存空间
(2)""拥有内存空间,只是长度为0.
25.String被final修饰,不可以被继续。

26.split切割字符串,String.charAt(int i)索引特定位置字符

27.==比较的对象内存地址相同且内容相同  equal比较的内容相同,与对象的内存地址无关

28.String.format(xx,xxx,xxx)可以对时间,日期,基本类型等进行转换。

29.正则表达式,一般通过Matcher与Pattern结合处理。

30.去掉字符串空格,在开始或者结尾直接用trim(),在中间通过replaceAll(" ","")实现。

31.整形转为二进制,八进制,十六进制
Integer.toBinaryString(df);
Integer.toOctalString(df);
Integer.toHexString(df);
32.使用追加方式StringBuffer与StringBuilder:
(1)StringBuffer类是线程安全的,StringBuilder类是非线程安全的;
(2)StringBuilder效率更高。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值