java基础拓展

1. 作用域:public private protected 默认的区别

  public:在同一项目中,被public修饰的在任何地方都可以被调用

  private:被private修饰的,只能在本类中被调用,其他地方都不可以调用

  protected:被protected修饰的,可以在本类中,同包下的不同类中,不同包下的子类中被访问

  默认:在本类中,同包下的类中被访问,其他地方不可以被访问

2. 构造器Constructor 是否可以被Override(重写)

  构造器不能被继承,所以不能被重写,但可以被重载

3. .java源文件是否可以包括多个类(不是内部类)?有什么限制?

  答:可以有多个类,但只能有一个public类,public的类必须和文件名相同

4. Java中有没有 goto?

    在C/C++中,goto常被用于跳出多重循环。但goto 语句的使用往往会使程序的可读性降低,所以 Java 不允许 goto 跳转。实际上,自从“goto有害论”提出后,软件开发就不建议使用  goto了,但是Java中依然保留了goto这个关键字留作备用,但这个关键字没有任何作用,只是为了将来可能的扩展,防止使用goto作为程序中的标识符。
  类似地,Java中的const也只是一个不起作用的保留关键字(不具备C语言中定义常量的作用,Java中要想定义常量使用final关键字),与goto一样防止作为程序中的标识符。

5. &和&&的区别?

  其实在java中两者都表示“并且”的意思

  &:if(a>b&a<c){}     

    不管第一个表达式是true还是false  都会执行第二个表达式

  &&:if(a>b&&a<c){}  

    如果第一个表达式是false,那么将不会再执行第二表达式,整个表达式的结果为false

    如果第一个表达式为true,那么将会判断第二个表达式,如果第二个表达式也是true,那么整个表达式的结果为true,反之第二个表达式是false那么整个结果就为false

结论:就效率而言,后者优于前者。

6. switch语句中的表达式可以是什么类型?

  JDK1.7版本以前可以使用:int、short、byte、char、枚举类型

  JDK1.7版本以后可以是用:int、short、byte、char、枚举类型  long  String

7.short  s1=1; s1=s1+1;   和    short  s1=1; s1+=1;   两者有什么区别?

  前者s1=s1+1; 会将整个表达式提升为int 类型   s1此时的值是int类型;需要强制转换,否则编译错误

  后者s1+=1; java语言规定的运算符,java编译器会进行特殊处理,因此可以正常编译

  

8.char类型变量中能否存储一个中文汉字?

  char类型是存储Unicode编码字符的,unicode编码字符集中包含了汉字。所以char类型变量中可以存储一个汉字的。如果一个特殊汉字没有被unicode编码字符集包括,那么char变量也是不能存储这个字符的

 

原文地址:https://www.cnblogs.com/LittleBoys/p/12070340.html