&&短路与,先判断 && 前面的条件,如果前面的条件成立,就不会判断后面的条件了,为了提高效率。在java编程中,大多数情况下都会有 && ;在某些特殊情况下会用到 &,如:
if (false & a++){
System.out.println("判断过程中也需要更新a的值");
}
短路或(||)的用法相同
自增:
前自增:先自增后赋值
后自增:先赋值后自增
int a = 1;
int b = a++; //b=1 ; a=2
int c = ++a; //c=3 ; a=3
int d = a+++b; //d=4 ; a=4; b=1
int e = a++ + ++b; //e=6 ;a=5;b=2
自减效果相同
数据类型转换的小技巧,隐式转换法
double a = 20.0;
定义一个float类型的变量
float a = 20.0f;
short a = 1;
a=a+2;
System.out.println(a);
会报错:
可以写成:
a+=b;
a=(short)(a+b);
返回的都是Boolean值
String a = "a";
String b = new String("a");
if (a.equals(b)){
System.out.println("我比较的是数值,不是地址");
}
if (a==b){
System.out.println("我比较的是数值,不是地址");
}else{
System.out.println("我比较的是地址");
}
写法不唯一
int a,b,c;
a = 6;
b = 2;
c = 3;
System.out.println(a>b?(a>c?a:c):(b>c?b:c));
System.out.println(3<<3);
至少写出三个方法
链接:不通过第三个变量来交换两个数:https://blog.csdn.net/IT_arookie/article/details/83178610
goto不是Java中的关键字,goto是java中的保留字,现在没有在java中使用。
char a = 66;
char b = 122;
System.out.println(a); //B
System.out.println(b); //z
封装、继承和多态
链接:java中方法的重写(overriding)与重载(overloading)的区别
封装(Encapsulation)是面向对象方法的重要原则,就是把对象的属性和操作(或服务)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节,对数据的访问只能通过已定义的接口,适当的封装可以让程式码更容易理解和维护,也加强了程式码的安全性。
继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力,这种技术使得复用以前的代码非常容易,能够大大缩短开发周期,降低开发费用。
多态具体表现在重写和重载,多态就是类的多种表现方式,比如同名不同参。
同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。简单来书就是父类的引用指向子类的对性,说白了就是大的接收小的。
1.声明一个常量;2.声明一个方法;3.声明一个类,不能被继承,名字使用全大写;4修饰参数,不能使参数改变。
使用final关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的。
if(a.equals(“a”){}
a可能为NULL,会报空指针错误;改为"a".equals(a)
作用域public,private,protected,以及不写时的区别。
作用域 | 当前类 | 同一package | 子类 | 其他package |
---|---|---|---|---|
public | √ | √ | √ | √ |
protected | √ | √ | √ | × |
friendly | √ | √ | × | × |
private | √ | × | × | × |
排序的方法有:插入排序(直接插入排序、希尔排序),交换排序(冒泡排序、快速排序),选择排序(直接选择排序、堆排序),归并排序,分配排序(箱排序、基数排序)。
未完待续…
持续更新中…