金融java面试_java编程面试题

金融java面试_java编程面试题rong盛Java面试题**1.选择题****1.1.Java是从(B)语言改进重新设计****1.2.以下声明合法的是(B)****1.3.关于以下application的说明方法,正确的是(C)****1.4.以下

融盛Java面试题

1.选择题

1.1.Java是从(B)语言改进重新设计

A. Ada B. C++ C. Pasacal D. BASIC 

1.2.以下声明合法的是(B)

A. default String s; B. public final static native int w() C. abstract double d; D. abstract final double hyperbolicCosine() 

1.3.关于以下application的说明方法,正确的是(C)

class StaticStuff{ 
    static int x = 10; static { 
   x += 5;} public static void main(String[] args) { 
    System.out.println(x); } static { 
   x /= 3;} } 
A. 4行与9行不能通过编译,因为缺少方法名和返回类型 B. 9行不能通过编译,因为只能有一个静态初始化器 C. 编译通过,执行结果为: x = 5 D. 编译通过,执行结果为: x = 3 

1.4.以下哪个关键字可以用来伪对象加互斥锁? (D)

A. transient B. static C. serialize D. synchronized 

1.5.在关系模型中,实现”关系中不允许出现相同的元组”的约束是通过(B)

A. 候选键 B. 主键 C. 外键 D. 超键 

1.6.在SQL语句中,与X between 20 and 30等价的表达式是(D)

A. X >= 20 and X < 30 B. X > 20 and x < 30 C. X > 20 and X <= 30 D. X >= 20 and X <= 30 

1.7.下列标识符不合法的有(A,C,D)

A. new B. $Usdollars C. 1234 D. car.taxi 

1.8.以下关于继承的叙述正确的是(A)

A. 在Java中只允许单一继承 B. 在Java中一个类只能实现一个接口 C. 在Java中一个类不能同时继承一个类和实现一个接口 D. 在Java中接口只允许单一继承 

1.9.在教学管理中心,一名学生可以选择多门课程,一门课程可以被多名学生选择,这说明学生记录型与课程记录型之间的关系是(C)

A. 一对一 B. 一对多 C. 多对多 D. 未知 

1.10.下述概念中不属于面向对象方法的是(D)

A. 对象、消息 B. 继承、多态 C. 类、封装 D. 过程调用 

1.11.从数据库中删除表的命令是(A)

A. drop table B. alter table C. delete table D. use 

1.12.在调用方法时,若要使方法改变形参的值,可以(B)

A. 用基本数据类型作为参数 B. 用对象作为参数 C. 以上都对 D. 以上都不对 

1.13.关于以下程序段,正确的说法是(C)

public static void main(String[] args) { 
    String s1 = "a" + "b"; String s2 = new String(s1); if (s1 == s2){ 
    System.out.println("== is succeeded"); } if (s1.equals(s2)){ 
    System.out.println(".equals is succeeded"); } } 
A. 两个判断都执行 B. 第一个判断执行,第二个判断不执行 C. 第一个判断不执行,第二个判断执行 D. 两个判断都不执行 

1.14.下列说法正确的有(C)

A. class中的constructor不可省略 B. constructor必须与class同名,但方法不能与class同名 C. constructor在一个对象被new时执行 D. 一个class只能定义一个constructor 

1.15.提供Java存取数据库能力的包是(A)

A. java.sql B. java.awt C. java.lang D. java.swing 

1.16.下列运算符合法的是(A)

A. && B. <> C. if D. := 

1.17.执行如下程序代码是(C)

public static void main(String[] args) { 
    int a = 0; int c = 0; do { 
    --c; a = a - 1; }while(a > 0); System.out.println(c); } 
A. 0 B. 1 C. -1 D. 死循环 

1.18.下列说法错误的有(B,C,D)

A. 数组是一种对象 B. 数组属于一种原生类 C. int number=[]={ 
   31,23,33,43,35,63} D. 数组的大小可以随意改变 

1.19.下列语句正确的是(A)

A. 形式参数可被视为local variable B. 形式参数可被字段修饰符修饰 C. 形式参数为方法被调用时,真正被传递的参数 D. 形式参数不可以是对象 

1.20.下列哪种说法是正确的(D)

A. 实例方法可直接调用超类的实例方法 B. 实例方法可直接调用超类的类方法 C. 实例方法可直接调用其他类的实例方法 D. 实例方法可直接调用本类的类方法 子类是否可以调用父类要看父类相应方法的权限,而无论本类方法的权限如何,都可以调用 

1.21.下列哪些语句关于内存回收的说明是正确的? (B)

A. 程序员必须创建一个线程来释放内存 B. 内存回收程序负责释放无用内存 C. 内存回收程序允许程序员直接释放内存 D. 内存回收程序可以在指定的时间释放内存对象 

1.22.下列说法正确的有(A)

A. 环境变量可在编译source code时指定 B. 在编译程序时,所能指定的环境变量不包括class path C. javac一次可同时编译数个Java源文件 D. javac.exe能指定编译结果要置于哪个目录(directory) 

1.23.下列哪些语句关于内存回收的说明是正确的? (B)

A. abstract修饰符可修饰字段、方法和类 B. 抽象方法的body部分必须用一对大括号{ 
    }包住 C. 声明抽象方法,大括号可有可无 D. 声明抽象方法不可写出大括号 

2.简答题

2.1.doGet()方法和doPost()方法有什么区别?

1.get方法会把值对追加在请求的url后面,因为url对字符数目有限制,进而限制了用在客户端请求的参数值的数目,并且请求中的参数值是可见的,因此敏感信息不能用这种方式传递(路径传参,效率高,安全性差) 2.post方法通过把请求参数值放在请求体中来克服get方法的限制,因此,可以发送的参数的数目是没有限制的,最后,通过post请求传递的敏感信息对外部客户端是不可见的(实体传参,效率低,安全性好) 

2.2.Java常见的异常类型

1.NullpointerException: 空指针异常 2.ClassCastException: 类型转换异常 3.ArrayIndexOutOfBoundsException: 数组下标越界异常 4.UnsupportedClassVersionErrorc: 不支持的类版本错误 5.NumberFormatException: 数字转换异常 6.IllegalArgumetException: 非法参数异常 7.IOExcetion: I/O流异常 8.ClassNotFoundException: 不能加载请求的类异常 9.IllegalAccessException: 对类的访问被拒绝异常 

2.3.页面样式导入时,使用link和@import有什么区别?

link属于XHTML标签,除了加载CSS外,还能定义rel连接属性等作用,而@import是CSS提供的,只能用于加载CSS 页面被加载时,link会同时被加载,而@import引用的CSS会等页面被加载完再加载 @import是CSS 2.1提出的,只在IE5以上才能被识别,存在兼容问题,而link是XHTML标签,无兼容问题 

2.4.Java有几种类型的流?

从输入输出方面来讲: Java中有输入流和输出流 从流的编码方式上来讲:Java中有字节流和字符流 字节流: InputStream、OutputStream 字符流: InputStreamReader、OutputStreamReder 

2.5.字符流和字节流有什么区别?

1.字节流操作的基本单元为字节;字符流操作的基本单元为Unicode码元 2.字节流默认不使用缓冲区;字符流使用缓冲区 3.字节流通常用于处理二进制数据,实际上它可以处理任意类型的数据,但它不支持直接写入或读取Unicode码元;字符流通常处理文本数据,它支持写入及读取Unicode码元 4.底层设备永远只接受字节数据,有时候要写字符串到底层设备,需要将字符串转成字节再进行写入;字符流是字节流的包装,字符流则是直接接受字符串,它内部将串转成字节,再写入底层设备,这为我们向IO设别写入或读取字符串提供了一点点方便 

2.6.varchar(N)或char(N)中N的含义是什么?

字符个数,不是字节大小 

2.7.内联接,外联接的区别

1.内连接只产生所有表中存在匹配的记录,最常见的就是我们常用的where语句连接,两边的表返回的都是匹配的记录 2.外连接是不对称连接,分为左联接和右联接,应该说他们的语法都是一样的,只是一个左,一个右内,结果是:相匹配的左()部的表的记录都出现在结果集中,而另一部分(满足前一条原则下)有匹配显示记录,无匹配则是显示NULL,可以用where过滤不是null的或是null的,相当于只满足一边返回匹配值 

2.8.Java中为什么会出现空指针异常?

1.指针就是Java中的对象的引用;比如String s;s就是指针 2.空指针就是指针的内容为空;比如上面的s,如果令它指向null,就是空指针 3.空指针异常就是一个指针是空指针,你还要去操作它,既然它指向的是空对象,它就不能使用这个对象的方法;比如上面的s假如为null,你还要用s的方法,比如s.equals( String x);那么就会产生空指针异常 

2.9.什么是Java序列化,如何实现Java序列化?

1.序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化(将对象转换成二进制);可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间,序列化是为了解决在对对象流进行读写操作时所引发的问题;把对象转换为字节序列的过程称为对象的序列化 2.实现Serializable接口 

2.10.Spring的@Autowired与@Resource的区别?

相同点: @Resource的作用相当于@Autowired,均可标注在字段或属性的setter方法上 不同点: @Autowired默认按类型装配 ,依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,也可以使用名称装配,配合@Qualifier注解;@Resource 默认按名称进行装配,通过name属性进行指定 

2.11.请写出Spring中几种常用的注解,并简单说明

1、声明bean的注解 @Component 组件,没有明确的角色 @Service 在业务逻辑层使用(service层) @Repository 在数据访问层使用(dao层) @Controller 在展现层使用,控制器的声明(C) 2.注入bean的注解 @Autowired 由Spring提供 @Resource 由JSR-250提供 3.配置类相关注解 @Configuration 声明当前类为配置类,相当于xml形式的Spring配置,其中内部组合了@Component注解,表明这个类是一个bean(类上) @Bean 注解在方法上,声明当前方法的返回值为一个bean,替代xml中的方式(方法上) @ComponentScan 用于对Component进行扫描,相当于xml中的(类上) 4.@Value注解 @Value为属性注入值(属性上) 

2.12.请说明Mybatis sql配置文件中$与#的区别?

$是将传入的数据直接显示生成sql语句 #是将传入的值当做字符串的形式 使用#可以很大程度上防止sql注入(语句的拼接),但是如果使用在order by中就需要使用$ 

2.13.假定系统中有一个User类,请写出实例化该类的几种方法

1.new语句创建对象 2.使用Class类的newInstance方法 3.使用Constructor类的newInstance方法 4.调用对象的clone()方法 5.使用反序列化 

3.编程题

3.1.利用冒泡排序给数组排序([6,10,88,39,12]),从大到小排序

public static void main(String[] args) { 
    int[] i = { 
   6,10,88,39,12}; for (int i1 = 0; i1 < i.length; i1++) { 
    for (int i2 = 0; i2 < i.length -1; i2++) { 
    if (i[i2] < i[i2 + 1]){ 
    int x = i[i2]; i[i2] = i[i2 + 1]; i[i2 + 1] = x; } } } for (int x : i) { 
    System.out.print(x + " "); } System.out.println(); } 

3.2.查询A(ID,Name)表中第31至40条数据,ID作为主键可能是不是连续增长的列

select id, name from a limit 3, 10; 

3.3.查询表A中存在ID重复三次以上的记录

select * from A where id in(select id from A group by id having count(id) > 3) 

3.4.计算字符串子串出现的次数

public static void main(String[] args) { 
    String s1 = "asdqweasdasd"; String s2 = "asd"; int count = 0; for (int i = 0; i < s1.length() + 1 - s2.length(); i++) { 
    if (s1.startsWith(s2, i)){ 
    count++; } } System.out.println(count); } 

3.5.利用递归方法求5!

public static void main(String[] args) { 
    DiGui(5); } /* 构造递归函数 */ public static int DiGui(int n) { 
    if(n==1) { 
    return 1; }else { 
    return DiGui(n - 1) * n; } } 

今天的文章
金融java面试_java编程面试题分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/60702.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注