java基础

1 . public、private、static都不能修饰局部变量。

2 . 用“==”进行比较时,符号两边的数据类型必须一致(可相互转换的基本类型除外),否则编译出错。

3 . JAVA语言的任何关键字都没有大写(打头)字母。

4 . 访问修饰符

  private:方法或变量只能在该类内部才能被访问。

  protected:方法或变量只能在同一个包里面的类或者是其子类才能访问。

  public:方法或变量其他任何类都可以访问。

5 . native:标识一个变量是使用平台不独立的语言编写的。

6 . throw:扔出的是异常对象,在方法中使用;throws:扔出的是异常类,在方法定义时使用。

7 . 根据JAVA语言规范,null, true, andfalse只是(文字的)常量,不是关键字。

8 . JAVA语言对十六进制中的字母不区分大小写即大小写表示的值是一样的。

9 . float f =23.9067985表达式是错误的,因为floating-pointer(浮点值)默认数值是double类型,把他赋给一个float类型的变量会出现编译错误;以下两种形式是对的:          floatf = 23.9067985F或double f = 23.9067985

10 . boolean类型变量的值只能是true和false;同理if语句的条件表达式也必须是boolean类型。

11 . 可以赋给char类型变量一个整型值,如一下语句是合法的:

    char c =(char) 70000; // The cast is required;

    char d = (char) -98; // Ridiculous, butlegal

    备注:0~65535范围内的值可以直接赋,这个范围以外的值需要使用char()来转换后在赋值。

12 . 这样的数组声明也是对的如:String[] ManagerName[];另外在数组声明语句中绝对不能 

      出现数组长度的定义。整型数组默认元素值是0。new语句中一定要给出数组的长度!如下定义是错误的:int []Test = newint[];对于多维数组,则在new语句中最少要给出         第一个长度参数值,如int[][] ratings = newint[3][]是对的,int[][] ratings = new int[][]和int[][] ratings = newint[][3]就是错误的。

13 . 访问数组元素时若元素标号超出了数组元素界限,则只会出现运行异常,不会出现编译异常,如int [] TestArray = newint[5],若代码中出现TestArray[5]则编译不会出错,        直到程序运行到还行时才会出现运行错误。

14 . 直接调用数组的length属性就可显示数组的长度(即数组拥有多少个元素);

15 . 如果一个数组被声明为接口类型,则数组元素可以引用任何该接口的类的实例。

16 . 子类的数组变量可以直接赋(值)给父类的数组变量如:

       Car[] cars;

       Honda[] cuteCars = new Honda[5];

      cars = cuteCars; // OK because Honda isa type of Car

17 . 维度不同的数组变量之间(即使符合IS-A标准)不能互相赋值。

18 . 变量没有被初始化就使用会出现编译错误(编译不通过)如:

       stringstrTemp;

       system.out.println(strTemp.toLowerCase);

19 . 数组定义(用new方法构造该数组)时,(数组元素)默认初始化为数组类型的默认值。

20 . 在方法或方法参数列表中定义的变量叫本地变量(Localvariable),注意:本地变量在使用之前一定要手动赋值(因为它不会象成员变量那样被构造函数自动初始化),否则       编译不会通过,即使是在判断语句中也不能使用未被手动赋值的本地变量。【编者按:实例(引用)变量经常会被初始化为null。

21 . 即使在判断分支中只有一个分支使用了为手动初始化的本地变量,而且该分支也不可能会执行,系统编译时仍然会报错。

22 . 主函数public static void mani(string[]args){}中的参数数组名不一定非得取名“args”。

23 . 当一个对象数组被初始化后,在数组中的对象不会自动被初始化,但是所有的引用都会得到默认值null。JAVA语言中boolean变量的默认值是false。

24 . JAVA语言中的所有数字都是带符号的(signed不是JAVA语言的关键字)。

 

(1.)       可以通过扩展一个实际(普通)类来生成一个抽象类(Abstract Class);

(2.)       类和接口不能被标记为static;同时类(非嵌套类)和接口也不能被标记成protected;

(3.)       Transient只能用来修饰变量(接口中的变量不能使用protected或transient来修饰,接口中的方法不能使用static和final来修饰);

(4.)       接口中定义的变量都默认是defaultfinal&static修饰的,故一旦被初始化将不能再被修改;

(5.)       若一个抽象类实现一个接口,在该抽象类的定义中可以不存在接口的任何实现;

(6.)       位与(&)比位或(|)有较高的优先级;

(7.)       当数组作为方法的参数时,若在方法中改变了数组的值,实际数组的值也将改变;

(8.)       Case语句中的表达式必须是常量(或final类型的变量),static类型的都不行!!

(9.)       If…else if 语句中,只要有一个判断匹配上了,下面(else if 语句)的就不再判断;

(10.)   Continue语句只能用在loop结构中;

(11.)   一旦程序中仍出运行异常(RunException),则finally块语句就马上会执行,程序就会终止;如果没有方法处理该异常,则finally语句会在异常向下传播之前先执行;如果有方法处理该异常,则会先执行异常处理方法然后再执行finally语句;

(12.)   断言只能仍出错误而不仍出异常(assertions throw errors and not exceptions,);

(13.)   断言错误(AssertionErrors)是不能够被处理的;

(14.)   断言语句冒号后面的部分必须是一个值(即使是返回值为void的方法都不行)!!

(15.)   构造函数不能有返回值;

(16.)   原始数据类型(值)不能显示转化(case)为对象类型?

(17.)   ParseInt(…)需要带一个字符串参数;

(18.)   不是同一个类层次上的对象不能通过equals方法比较;

(19.)   Boolean字符串大小写是不敏感的;

(20.)   HashTable是唯一一个能提供synchronized方法的类;

(21.)   本地方法内的(local-method)inner类可以标记为“abstract”;

(22.)    staticint i = 0;这样声明变量是不对的;

(23.)   一条CASE语句中不能包含两个或以上的判断值;

(24.)   如果两个对象互相引用(形成了隔离区),则这两个对象可以被垃圾收集器收集;

(25.)   默认的构造函数只会初始化(类)成员变量,不会初始化(类)方法变量;

(26.)    Switch后面的变量可以是byte类型和char类型;

(27.)   若类中不存在public static void main(String[]args)函数的话,编译不会出错,只是程序不能运行;

(28.)   这样定义数组是错误的:boolean results[] = new boolean [3] {true, false,true};

(29.)   Object是不能被仍出的;

     Integer a = new Integer(10);Integer b = new Integer(10);a==b是错误的;

 

posted on 2017-05-07 09:50  全力以赴002  阅读(117)  评论(0)    收藏  举报

导航