欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

荐 Java中的螺丝屑

程序员文章站 2023-11-15 10:42:58
在我们的开发过程中,往往都是面试造航母,开发拧螺丝,平时往往一个很普通的一个关键字,就是我们get不到的地方,在前两天看视频的过程中,我突然发现自己好像有很多晓得知识点,特别容易疏忽的地方,在此做一个总结希望以后自己有空的时候可以拿出来看看Java是值传递 非引用传递递归(就是自己调用自己)递归头:什么时候不用调用自身的方法递归体:什么时候需要调用自身方法我们常见的递归就是阶乘/** * 递归 */ public static int f(int n) {...

在我们的开发过程中,往往都是面试造航母,开发拧螺丝,平时往往一个很普通的一个关键字,就是我们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
\ddd 1到3位八进制数所代表的任意字符 三位八进制
\uhhhh 1到2位十六进制所代表的任意字符 二位十六进制

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

  1. 四类八种数据类型排序
    byte-short-char-int-long-float-double 按字节大小排序
    荐
                                                        Java中的螺丝屑

  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的区别

abstract interface
不能new抽象类 方法默认是public abstract修饰
抽象类也可以写普通方法 接口与实现类之间存在多态性
抽象方法必须写在抽象类中 所有的属性都是静态的常量,默认省略了static和final修饰符,属性的值必须实例化(初始化)
  1. 内部类
内部类
成员内部类 通过这个外部类来实例内部类
静态内部类 static修饰
局部内部类 方法内的类
匿名内部类 没有名字初始化类,不用将实例保存到变量中
  1. 一个Java类中可以有多个class类 但是只能有一个public
  2. super和this的区别
super this
指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类 指向对象本身的一个指针
只能在子类的方法或者构造方法中使用 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;

本文地址:https://blog.csdn.net/weixin_44748605/article/details/107350497