(2.3.4)java基础题汇总

  • 编程基础
    • 8-javac和java和jar
  • 语言基础
    • 1-java创建对象的方法
    • 2-反射机制的主要功能
    • 3-java是否有gotoconst
    • 4-一个类同时abstract和final
    • 5-一个函数中定义一个static变量
    • 6-finally
    • 9-java的参数命名
    • 10-java注释
    • 11-int和Integer
    • 12-转义符 uXXX
    • java源文件的结构
    • 系统类
  • 运算符和类型转换
    • 14-运算符的优先级也要保证从左向右
    • 7-systemoutprintln执行
    • 15日期类
  • 声明与控制访问
    • 16类的声明只能是publicabstractfinal不能使private
    • 17this指向当前类对象不能改变与再次赋值A的内部类B中应该使用Athis
    • continue只能用在循环体中break没有该方面的限制正确blockbreak block
    • throws抛出一个异常找到一个catch匹配就停止异常信息一般最后打印出来
    • throws出现在函数头中预先声明可能抛出的异常throw 抛出一个异常
  • 面向对象
    • 20开闭原则依赖倒转接口隔离里氏代换
    • 21NULL参数是被先作为字符格式匹配而不是Object这点在方法重载中尤其注意
    • 22函数覆盖时注意
    • 23继承并不继承构造函数但是隐式继承时要求父类必须有默认构造函数
    • StringBuffer的方法
    • 同国内sublistint start int end可以的到目标list的子list引用对该引用的修改也会导致原list的修改
    • listaddint local Type value在目标位置插入一个元素如果该位置已经有了这些位置以后的向后移动并不覆盖原值
    • 27new FileOutputStreamFile file boolean bool创建一个文件的输出流同时以true方式打开时是在文件尾端加入数据不会对源来部分修改
  • 数据库技术
    • JDBC调用存储过程的接口
    • 注册JDBC Driver
    • numberic类型用getDouble
    • 用户临时表table1 系统临时表table2
    • 存储过程用exect 可以没有返回值 函数可以在select uninxx必须有返回值

编程基础

8-javac和java和jar

javac test.java 编译命令
java test 运行test的main方法
jar cf test.jar test 将test文件夹压缩为jar

语言基础

1-java创建对象的方法

【1】new实例一个对象
【2】反射机制创建对象
Class c=Class.forNmae(“MyClass”);
Base b=(Base) c.newInstance;
【3】clone()一个对象
【4】反序列化得到一个对象

2-反射机制的主要功能

【1】获取对象所属的类
【2】运行时创建对象。例如,用户输入类名参数,创建一个实例
【3】运行时获取对象的所有成员变量和方法
【4】运行时调用对象的方法。例如,用户输入方法名和参数,计算机执行对应方法

3-java是否有goto,const?

有,但是仅作为保留关键字,并没有被使用。
java使用 break mytab;跳出多重循环,”mytable:“定义目标位置
(2.3.5)java关键字

4-一个类同时abstract和final?

不存在,final不能被继承,abstract要求子类继承
java允许将数据成员声明为final,却不赋初值。但是,blank finals必须在使用之前初始化,且必须在构造函数中初始化

5-一个函数中定义一个static变量?

不可以,java规定不能再成员函数中定义静态变量

6-finally

(1)finally是指即使出现异常,也会被执行的代码段
(2)finally之前有return,则finally代码段在return前执行
(3)finally前后都有return,则finally的return会覆盖其他的return
(4)finally前有exit,则finally不再执行

9-java的参数命名

  • 可以为字母、数字、连接符号如_$¥
  • 第一个字母不能为数字
  • 区分大小写
  • 不能使用@&-
  • 可以使用中文变量和中文字符

正确示例
Abc123、abc、¥m、¥kill、my_code、gα
错误示例
45m、my@email、int-1

10-java注释

单行注释:

//XXXXXX

多行注释:不能嵌套

/*XXXXXXX XXXXX XX*/

归档注释:会出现在最终生成的报告文档中

/**XXX XXXXXXXX XXX*/

11-int和Integer

java提供引用类型和原始类型两种不同数据类型。
同时java还为每个原始类型提供一个封装类,封装对应的一些方法。

Java编程语言为8个原始基本类型:
boolean,char,byte,short,int,long,double,flout

注意String是对象类型,不在原始类型范围内

12-转义符 \uXXX

char \u0061=’a’;
char a=’\u0061’
ch\u0061r a=’a’

13 java源文件的结构

(1)package
(2)import
(3)只能有一个公共public类,并和文件名一样

14 系统类

A,Thread可以被继承,用于创建新的线程
B,Number类可以被继承,Integer,Float,Double等都继承自Number类
C,Double类的声明为public final class Doubleextends Numberimplements Comparable不能被继承
D,Math类的声明为public final class Mathextends Object 不能被继承
E,ClassLoader可以被继承,用户可以自定义类加载器

运算符和类型转换

14-运算符的优先级也要保证从左向右

         int n=5;
        System.out.println(n+(n++)+(++n));

n=5+(5)+(6+1)

7-system.out.println执行

system.out.println(1+2+"");//(1)3
system.out.println(""+1+2);//(2)12
system.out.println(5.4+"3.2");//(3)5.43.2,加号两边发现字符串类型的,都会强转为字符串类型

(1)
1. —-1、2为整形
2. —-1+2=3
3. —-3+‘’=’3’
(2)
1. —-“”+1=”1”
2. —“1”+2=“12”

15日期类

Date mydate=new Date(0);
system.out.println(mydate);//the Jan01 08:00:00 1970

java统计从197011日期的毫秒时间,Date用long存储相差的毫秒数

声明与控制访问

16类的声明只能是public、abstract、final,不能使private

17this指向当前类对象,不能改变与再次赋值。A的内部类B中,应该使用A.this

18 continue只能用在循环体中,break没有该方面的限制,正确:block:{break block;}

throws抛出一个异常,找到一个catch匹配就停止,异常信息一般最后打印出来

int k=5;
try{
int kk=k/0;
}
catch(ArithmeticException e){
cout<<1;
}
catch(RuntimeException e){
cout<<2:
}
catch(Exception e){
cout<<3;
}

输出为1

19 throws出现在函数头中,预先声明可能抛出的异常;throw 抛出一个异常。

面向对象

20开闭原则、依赖倒转、接口隔离、里氏代换

21NULL参数是被先作为字符格式匹配,而不是Object,这点在方法重载中尤其注意

22函数覆盖时注意

  • 子类方法的名称、参数名和返回类型和父类要保持完全一致。
  • 子类方法覆盖式不能缩小父类方法的访问权限
  • 子类方法不能跑出比父类方法更多的异常。且子类抛出的异常必须与父类抛出的异常相同,或者是其子类
  • 覆盖之存在于父类和子类之间
  • 父类的静态方法不能被子类覆盖为非静态方法,但可被覆盖为子类的静态方法
  • 父类的抽象方法可以被赋给为非抽象方法
class A{
public void fun(){}
}

Class B extends{
public void fun() thorws RuntimeException{}
}

虽然看似子类B跑出了父类方法没有的异常,但是需要注意RuntimeException异常是被默认隐式抛出的,也就是说其实父类A的方法默认会有对RuntimeException的抛出

23继承并不继承构造函数,但是隐式继承时要求父类必须有默认构造函数。

class A{
public void A(int){}
}

Class B extends{
public void fun() {
//super(int)
}
}

以上代码报错,因为B会隐式的调用super()来执行父类的构造方法,如果父类没有的话,就报错。
除非显式定义super(int)
查看构造函数的执行顺序和意义

24 StringBuffer的方法

  • 构造函数
    • StringBuffer ()
    • StringBuffer (int length)
    • StringBuffer (String s)
  • 支持方法
    • ensureCapacoty() 保证缓冲器容量至少等于指定最小数
    • getchars(int i,int j.char[] str ,int k) 把字符从字符创缓冲区复制到目标数组
    • length() 长度
    • reverse() 反向替换
    • setlength() 设置长度

25 同国内sublist(int start ,int end)可以的到目标list的子list引用,对该引用的修改也会导致原list的修改

26 list.add(int local, Type value)在目标位置插入一个元素,如果该位置已经有了,这些位置以后的向后移动,并不覆盖原值。

27new FileOutputStream(File file, boolean bool)创建一个文件的输出流,同时以true方式打开时,是在文件尾端加入数据,不会对源来部分修改

数据库技术

28 JDBC调用存储过程的接口

CallableState,emt

29 注册JDBC Driver

  • Class.forName(“驱动名称”)
  • 实例化一个Driver

30 numberic类型用getDouble()

31 用户临时表#table1 系统临时表##table2

32 存储过程用exect 可以没有返回值 函数可以在select unin(xx)必须有返回值

你可能感兴趣的:((2.3.4)java基础题汇总)