荐 Java中的螺丝屑
程序员文章站
2022-06-11 15:56:26
在我们的开发过程中,往往都是面试造航母,开发拧螺丝,平时往往一个很普通的一个关键字,就是我们get不到的地方,在前两天看视频的过程中,我突然发现自己好像有很多晓得知识点,特别容易疏忽的地方,在此做一个总结希望以后自己有空的时候可以拿出来看看Java是值传递 非引用传递递归(就是自己调用自己)递归头:什么时候不用调用自身的方法递归体:什么时候需要调用自身方法我们常见的递归就是阶乘/** * 递归 */ public static int f(int n) {...
在我们的开发过程中,往往都是面试造航母,开发拧螺丝,平时往往一个很普通的一个关键字,就是我们get不到的地方,在前两天看视频的过程中,我突然发现自己好像有很多晓得知识点,特别容易疏忽的地方,在此做一个总结
希望以后自己有空的时候可以拿出来看看
Java是值传递 非引用传递
-
递归(就是自己调用自己)
递归头:什么时候不用调用自身的方法
递归体:什么时候需要调用自身方法
我们常见的递归就是阶乘
/**
* 递归
*/
public static int f(int n) {
if (n == 1) {
return 1;
} else {
return n * f(n - 1);
}
}
- 平时我们所见到的Java文档其实生成的命令就是
Javadoc -encoding UTF-8 -charset UTF-8 XXXX.java
- for循环的构成
初始化/条件判断/迭代
-
重载(overload):一个类中有相同的函数名称,形参不同的函数,也就是我们平时所见到的有参构造;
重写(override):在extend的基础上发生的,方法名相同,参数列表相同,修饰符可以扩大(不可以缩小),抛出的异常可以缩小,不可以扩大。 -
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}); // 传递数组
但是在实际开发中并不建议这样使用,可以作为了解,以方便我们看源码的时候可能会看到
- 转义符
转义字符 | 含义 | 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位十六进制所代表的任意字符 | 二位十六进制 |
注:区分,斜杠:"/" 与 反斜杠:"" ,不可互换
-
四类八种数据类型排序
byte-short-char-int-long-float-double 按字节大小排序 -
unicode编码
2的16次方=65536
2的10次方=1024
97=a
65=A
-
类变量:一个类内且用static修饰
实例变量:方法外,类内
局部变量:方法内(必须声明和初始化值) -
准确说出每种运算符都有什么
运算符 | … |
---|---|
算术运算符 | + - * / % ++ – |
赋值运算符 | = |
关系运算符 | > < >= <= == != 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 > >右移两位
注:二进制的转化
-
命令行传参(JVM调优)
-
abstract和interface的区别
abstract | interface |
---|---|
不能new抽象类 | 方法默认是public abstract修饰 |
抽象类也可以写普通方法 | 接口与实现类之间存在多态性 |
抽象方法必须写在抽象类中 | 所有的属性都是静态的常量,默认省略了static和final修饰符,属性的值必须实例化(初始化) |
内部类
内部类 | … |
---|---|
成员内部类 | 通过这个外部类来实例内部类 |
静态内部类 | static修饰 |
局部内部类 | 方法内的类 |
匿名内部类 | 没有名字初始化类,不用将实例保存到变量中 |
- 一个Java类中可以有多个class类 但是只能有一个public
- super和this的区别
super | this |
---|---|
指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类 | 指向对象本身的一个指针 |
只能在子类的方法或者构造方法中使用 | this调用属性、调用方法、利用this表示当前对象 |
super和this不能同时调用构造方法 | 本类的构造中使用 |
this相当于是指向当前对象本身 | 与this类似,super相当于是指向当前对象的父类,这样就可以用super.xxx来引用父类的成员 |
形参与成员名字重名,用this来区分 | 子类中的成员变量或方法与父类中的成员变量或方法同名 |
super(参数):调用父类中的某一个构造函数(应该为构造函数中的第一条语句) | this(参数):调用本类中另一种形式的构造函数(应该为构造函数中的第一条语句) |
注:调用父类的构造方法,必须在构造方法内的第一行;super调用父类,只能在子类的方法或者构造方法中使用;this和super不能同时调用构造方法 | 注:this调用自身,没有继承也可以使用 |
- 父类的引用指向子类
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
- 在JDK1.7以后
int i=1000000;
等同于int i=1000_0000;
本文地址:https://blog.csdn.net/weixin_44748605/article/details/107350497
上一篇: 新产品品牌推广方案的3个套路
下一篇: 产品应该如何推广?这个要因人而异