Java中的螺丝屑

在我们的开发过程中,往往都是面试造航母,开发拧螺丝,平时往往一个很普通的一个关键字,就是我们get不到的地方,在前两天看视频的过程中,我突然发现自己好像有很多晓得知识点,特别容易疏忽的地方,在此做一个总结

希望以后自己有空的时候可以拿出来看看
  1. Java是值传递 非引用传递
  2. 递归(就是自己调用自己)
    递归头:什么时候不用调用自身的方法
    递归体:什么时候需要调用自身方法
    我们常见的递归就是阶乘
	/**
     * 递归
     */
    public static int f(int n) {
        if (n == 1) {
            return 1;
        } else {
            return n * f(n - 1);
        }
    }
  1. 平时我们所见到的Java文档其实生成的命令就是
Javadoc -encoding UTF-8 -charset UTF-8 XXXX.java
  1. for循环的构成
初始化/条件判断/迭代
  1. 重载(overload):一个类中有相同的函数名称,形参不同的函数,也就是我们平时所见到的有参构造;
    重写(override):在extend的基础上发生的,方法名相同,参数列表相同,修饰符可以扩大(不可以缩小),抛出的异常可以缩小,不可以扩大。

  2. Java可变参数:在JDK1.5中提供了Varargs(variable arguments)机制,允许直接定义能 和多个实参相匹配的形参,用一种更简单的方式,来传递个数可变的实参。
    比如:

	public int add(int... numbers){
  		int sum = 0;
	  for(int num : numbers){
	    sum += num;
	  }
	  return sum;
	}

其中int... numbers 就是可变参数
调用:

	add();  // 不传参数
	add(1);  // 传递一个参数
	add(2,1);  // 传递多个参数
	add(new Integer[] {1, 3, 2});  // 传递数组

但是在实际开发中并不建议这样使用,可以作为了解,以方便我们看源码的时候可能会看到

  1. 转义符
转义字符含义ASCII码值(十进制)
\b退格(BS) ,将当前位置移到前一列008
\f换页(FF),将当前位置移到下页开头012
\n换行(LF) ,将当前位置移到下一行开头010
\r回车(CR) ,将当前位置移到本行开头013
\t水平制表(HT) (跳到下一个TAB位置)009
\v垂直制表(VT)011
\代表一个反斜线字符’’’092
代表一个单引号(撇号)字符039
‘’代表一个双引号字符034
\0空字符(NULL)000
\ddd1到3位八进制数所代表的任意字符三位八进制
\uhhhh1到2位十六进制所代表的任意字符二位十六进制

注:区分,斜杠:"/" 与 反斜杠:"" ,不可互换

  1. 四类八种数据类型排序
    byte-short-char-int-long-float-double 按字节大小排序
    在这里插入图片描述

  2. unicode编码

	216次方=65536 
  	210次方=1024
  	97=a
  	65=A
  1. 类变量:一个类内且用static修饰
    实例变量:方法外,类内
    局部变量:方法内(必须声明和初始化值)

  2. 准确说出每种运算符都有什么

运算符
算术运算符+ - * / % ++ –
赋值运算符=
关系运算符> < >= <= == != instandof
逻辑运算符&& ! ||
位运算符& | ^ ~ >> << >>>
条件运算符?:
扩展赋值运算符+= -= *= /=

位运算符——举例:

	A=0011 1100
	B=0000 1101
	A&B (两个1相同为1,其余为0=0000 1100
	A|B(两个0相同为0,其余为1=0011 1101
	A^B (两个相同为0,不相同为1=0011 0001

	<<左移两位,即2<<3=16      > >右移两位 
	注:二进制的转化
  1. 命令行传参(JVM调优)

  2. abstract和interface的区别

abstractinterface
不能new抽象类方法默认是public abstract修饰
抽象类也可以写普通方法接口与实现类之间存在多态性
抽象方法必须写在抽象类中所有的属性都是静态的常量,默认省略了static和final修饰符,属性的值必须实例化(初始化)
  1. 内部类
内部类
成员内部类通过这个外部类来实例内部类
静态内部类static修饰
局部内部类方法内的类
匿名内部类没有名字初始化类,不用将实例保存到变量中
  1. 一个Java类中可以有多个class类 但是只能有一个public
  2. super和this的区别
superthis
指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类指向对象本身的一个指针
只能在子类的方法或者构造方法中使用this调用属性、调用方法、利用this表示当前对象
super和this不能同时调用构造方法本类的构造中使用
this相当于是指向当前对象本身与this类似,super相当于是指向当前对象的父类,这样就可以用super.xxx来引用父类的成员
形参与成员名字重名,用this来区分子类中的成员变量或方法与父类中的成员变量或方法同名
super(参数):调用父类中的某一个构造函数(应该为构造函数中的第一条语句)this(参数):调用本类中另一种形式的构造函数(应该为构造函数中的第一条语句)
注:调用父类的构造方法,必须在构造方法内的第一行;super调用父类,只能在子类的方法或者构造方法中使用;this和super不能同时调用构造方法注:this调用自身,没有继承也可以使用
  1. 父类的引用指向子类
	
class Fu {
    void show() { //
        System.out.println("show fu");
    }
}

class Zi extends Fu {
    void show(){

        System.out.println("show zi");
    }
}


public class Test {

    public static void main(String[] args) {
        Zi zz=new Zi();
        zz.show();
        Fu fz=new Zi();
        fz.show();
    }
 }


输出结果为:
	show zi
	show zi
  1. 在JDK1.7以后 int i=1000000; 等同于 int i=1000_0000;
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值