logo

其他基础语法

Math.round(11.5) 等于多少?Math.round(-11.5)等于多少

四舍五入的原理是在参数上加 0.5 然后进行下取整。

  1. Math.round(11.5)的返回值是 12
  2. Math.round(-11.5)的返回值是-11

用最有效率的方法计算 2 乘以 8

2 << 3(左移 3 位相当于乘以 2 的 3 次方,右移 3 位相当于除以 2 的 3 次方)

运算符 | 和 ||,& 和 && 的区别

|& 定义为位运算符。

||&& 定义为逻辑运算符,

& 按位与操作,按二进制位进行""运算。运算规则:(有 0 则为 0)

| 按位或运算符,按二进制位进行""运算。运算规则:(有 1 则为 1)

A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A | B = 0011 1101

&&运算符是短路与运算。当且仅当两个为真,条件才真。如果&&左边的表达式的值是false右边的表达式会被直接短路掉,不会进行运算。很多时候我们可能都需要⽤&&⽽不是&。

**||**运算符是短路或运算,短路原理和&&同理

运算符的优先级

Java中的常见运算符按照优先级从高到低依次为:

():括号运算符,具有最高优先级;
!、~、++、–:逻辑非、位取反、自增、自减运算符;
*、/、%:乘、除、取模运算符,优先级相同,从左向右结合;
+、-:加、减运算符,优先级相同,从左向右结合;
<<、>>、>>>:左移、右移、无符号右移运算符,优先级相同,从左向右结合;
<、<=、>、>=:小于、小于等于、大于、大于等于运算符,优先级相同,从左向右结合;
==、!=:等于、不等于运算符,优先级相同,从左向右结合;
&:按位与运算符,优先级较低;
^:按位异或运算符,优先级更低;
|:按位或运算符,优先级最低;
&&:逻辑与运算符,优先级较低;
||:逻辑或运算符,优先级更低;
?::三元条件运算符,优先级最低;

最后需要注意同级运算符运算顺序从左往右,大家知道一下即可,无需死记硬背

break ,continue ,return 的区别及作用?

  • break跳出整个循环,不再执⾏循环( 结束当前的循环体 )
  • continue跳出本次循环,继续执⾏下次循环( 结束正在执⾏的循环 进⼊下⼀个循环条件 )
  • return程序返回,不再执⾏下⾯的代码( 结束当前的⽅法 直接返回 )

自增自减运算

++和–运算符可以放在变量之前,也可以放在变量之后。

当运算符放在变量之前时(前缀),先⾃增/减,再赋值;当运算符放在变量之后时(后缀),先赋 值,再⾃增/减。

int i = 1;
i = i++; 
System.out.println(i);

结果为1

如果将i++ 换成++i, 则结果为:2

switch 是否能作⽤在 byte/long/String上?

Java5 以前 switch(expr)中,expr 只能是 byte、short、char、int

从 Java 5 开始,Java 中引⼊了枚举类型, expr 也可以是 enum 类型。

从 Java 7 开始,expr还可以是字符串(String),但是长整型(long)在⽬前所有的版本中都是不可 以的。

静态变量和实例变量区别

  • 静态变量: 静态变量由于不属于任何实例对象,属于类的,所以在内存中只会有一份,在类的加载过程中,JVM只为静态变量分配一次内存空间。

  • 实例变量: 每次创建对象,都会为每个对象分配成员变量内存空间,实例变量是属于实例对象的,在内存中,创建几次对象,就有几份成员变量。

静态变量与普通变量区别

static变量也称作静态变量,静态变量和非静态变量的区别是:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。

而非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。

Java语言采用何种编码方案?

Java语言采用Unicode编码标准,Unicode(标准码),它为每个字符制订了一个唯一的数值,因此在任何的语言,平台,程序都可以放心的使用!

访问修饰符 public,private,protected区别

在Java中,可以使用访问控制符来控制对类、变量、方法和构造方法的访问

支持4种不同的访问权限:

  1. public : 是访问权限最宽松的修饰符,表示任何类都可以访问被修饰的类或类成员。无论这个类位于哪个包中,public成员始终对所有其他类可见。使用对象:类、接口、变量、方法
  2. private:是访问权限最严格的修饰符。使用 private 修饰的成员只能在类内部访问,类的外部(包括其子类)无法访问。使用对象:变量、方法。 注意:不能修饰类(外部类)
  3. protected:修饰符允许类的成员在同一包内继承关系中的子类中访问。与 private 不同的是,protected 使得子类可以访问父类的受保护成员。使用对象:变量、方法。 注意:不能修饰类(外部类)
  4. default:如果在类或成员声明时未显式指定访问修饰符,则默认为包级访问权限。这种访问权限仅限于同一包内的类,包外的类无法访问它们。使用对象:类、接口、变量、方法。

什么是方法的返回值?

方法的返回值指的是在调用方法后,该方法所返回的结果。Java 中的方法可以分为无返回值方法、基本数据类型返回值方法、引用数据类型返回值方法和多个返回值方法

无返回值方法使用void关键字声明;基本数据类型和引用数据类型返回值方法需要在方法声明时指定返回类型,并使用return语句返回具体的值或对象;多个返回值方法可以使用容器类或自定义类封装多个返回值