1.[不定项选择题]
(1)以下命名合法的是:(BC) A.Hello.Worl B.$ABC C.$A$B$C D.2Hello
2.[简答题]
(1)java中有哪几种修饰符作用是什么?
default 默认 同包
private 私有的 本类中使用
public 公共的 任何地方都可以使用
protected 受保护 同包 或者 父子
(2)oop的三大特征是什么?
封装 继承 多态
(3)重写(override)和重载(overload)的区别是什么?
方法重载(overload)特征:
本类中
方法名相同
参数列表不同[参数的顺序 或者参数的个数 或者 参数的类型]
不以返回值区分
重写特点:
发生在父子之间
签名相同
特殊1:修饰符一定要大于等于 父类的方法的修饰符
特殊2:异常一定是小于等于 父类的方法的异常
特殊3:方法的参数类型一定是小于等于 父类的方法返回值
(4)ctor特点是什么?
构造函数(ctor)特征:
一般情况下修饰符是public
没有返回值,没有void
与类同名
可以重载
在一个类中,如果程序员没有写构造函数,那么系统会给一个无参数的构造函数
(5)接口和抽象类的异同点?
共同点: 不允许实例化
不同点: 接口可以继承接口,可以多继承. IA extends IB ,IC ,ID
抽象类只能实现接口implement,只能继承类extends. A extends B implement IA ,IB
(6)final finally finalize 区别?
finally =>异常块
final =>常量关键字.
finalize =>1.这个方法是Object类中的方法 2.这个方法是在垃圾回收之前运行的,做清理工作的.
(7)你常用的集合有哪些以及区别?
Collection =>Set =>HashSet[不允许重复,无序] TreeSet[不允许重复,自动排序]
List => ArrayList 数组结构 线程不安全 R
Vector 数据结构 线程安全
LinkedList 链表结构 线程不安全 CUD
Map => HashMap 数据 + 链表 . 线程不安全
HashTable 数据 + 链表. 线程安全.
Properties 属性文件. key value
(8)HashSet的去重原理是什么?
hashcode + equals
(9)TreeSet的比较原理是什么?
Comparator Comparable
(10)写出工作中常见的五个异常信息.
java.lang.ArrayIndexOutOfBoundsException 下标越界异常
java.lang.NumberFormatException 数字格式化异常
java.lang.ClassCastException 类型转换异常
java.lang.NullPointerException 空指针异常
ClassNotFoundException 类找不到异常
(11)TCP/IP 和 UDP/IP 分别是什么意思?
TCP/IP 三次握手协议,即面向连接的.
UDP/IP 类似于写信,即非连接协议.
(12)java中有几种方式实现多线程,你更喜欢哪一种?为什么?
Thread 和 Runnable .
Runnable更好.
因为JAVA中的继承是单继承的,如果你已经继承了Thread就不能再继承其他的类,如果你实现了Runnable接口,可以实现多继承.
(13)wait 和 sleep区别?
1.wait必须在synchronized块中.
2.wait方法是将自己线程等待,并且释放锁.
3.sleep可以在任何地方使用
4.如果sleep在synchronized中,就算是睡着了,也不释放锁. sleep(1000)
(14)同步块的单词是__synchronized _______?
(15)如何解决资源竞争问题?
锁
(16)你在工作中最常用的是哪几种索引? 请创建
单列索引和组合索引.
CREATE INDEX i_ab
ON a(name)
CREATE INDEX i_ab
ON a(name,starttime)
(17)你在工作中什么地方会使用视图?请创建一个查询视图.
N多表连查,并且多人使用的时候.
CREATE VIEW v_ab
AS
SELECT * FROM A,B
(18)请把测试服务器(a.b.c)中的数据库(apply)拉到本地.
mysqldump -h a.b.c -u root -p apply > D:\apply.sql
(19)float f=3.4;是否正确? 不正确,默认小数都是double类型的
short s1 = 1; s1 = s1 + 1;有错吗?不正确,整数默认是int类型的.所以1是int类型的.
short s1 = 1; s1 += 1;有错吗?正确.
(20)String 是最基本的数据类型吗?不是
索引的类型是什么? btree
(21)ctor 可以被重写吗? 不可以
String类可以被继承吗? 不可以
3.编码题
(1)1 1 2 3 5 8 ...显示第20位的数字,请编写核心代码
int a = 1;
int b = 1;
int c = 0;
for(int i =2 ;i <20;i++){
c = a + b;
b = a;
a = c;
}
System.out.print(c+"\t");
(2)写一个冒泡排序
for(int i = 0;i < arr.length - 1;i++){
for(int j = 0; j < arr.length - 1 - i; j++){
}
}
(3)模拟写一个死锁,请编写核心代码
class Lock{
private static Object objA = new Object();
private static Object objB = new Object();
public void funA(){
synchronized (objA){
System.out.println("funA objA 已拿到");
try {
Thread.sleep(1000);
}catch (Exception ex){
}
synchronized (objB){
System.out.println("funA objB 已拿到");
}
}
}
public void funB(){
synchronized (objB){
System.out.println("funB objB 已拿到");
try {
Thread.sleep(1000);
}catch (Exception ex){
}
synchronized (objA){
System.out.println("funB objA 已拿到");
}
}
}
}
(4)请写一段代码,返回一个100以内的随机数字.
int random = (int)(Math.random()*100);
(5)请编写核心代码: 实现两个list的数据合并.
addAll()
(6)实现一个1 + 2 - 3 + 4 - 5....100的结果.
int sum = 0;
for(int i =0;i<100;i++){
if(i % 2 == 0){
sum += i;
} else{
sum -= i;
}
}
(7)修改表中的字段addr,修改为varchar(200).
ALTER TABLE t1 CHANGE addr addr VARCHAR(200)
(8)添加一个字段memo,类型为varchar(200).
ALTER TABLE t1 ADD memo VARCHAR(200)
(9)
需求:
[9.1]建立一个公司数据库(gongsi)
CREATE DATABASE gongsi
[9.2]建立一张部门表(部门编号b_id,部门名称b_name) , 其中b_id为主键,自增长,b_name不允许为空
CREATE TABLE bm (
b_id INT PRIMARY KEY AUTO_INCREMENT,
bname VARCHAR(10) NOT NULL
)
[9.3]建立一张员工表(员工编号y_id,姓名y_name,性别y_sex,年龄y_age,住址y_address,部门编号b_id), 其中y_id为主键自增长。 住址默认为’不详’ ,b_id依赖于部门表的b_id。
CREATE TABLE yg (
y_id INT PRIMARY KEY AUTO_INCREMENT,
y_name VARCHAR(20),
y_sex VARCHAR(10),
y_age INT,
y_address VARCHAR(100) DEFAULT '不详',
b_id INT
)
ALTER TABLE yg
ADD CONSTRAINT FK_yg_b_id FOREIGN KEY (b_id) REFERENCES bm(b_id)
[9.4]查询每个部门各有多少人,显示部门名字和人数,按人数倒序,如果人数相同,按部门编号正序。
SELECT COUNT(*),bm.b_name FROM yg LEFT JOIN bm ON yg.b_id = bm.b_id GROUP BY b_id ORDER BY COUNT(*) DESC ,bm.b_id ASC
(1)以下命名合法的是:(BC) A.Hello.Worl B.$ABC C.$A$B$C D.2Hello
2.[简答题]
(1)java中有哪几种修饰符作用是什么?
default 默认 同包
private 私有的 本类中使用
public 公共的 任何地方都可以使用
protected 受保护 同包 或者 父子
(2)oop的三大特征是什么?
封装 继承 多态
(3)重写(override)和重载(overload)的区别是什么?
方法重载(overload)特征:
本类中
方法名相同
参数列表不同[参数的顺序 或者参数的个数 或者 参数的类型]
不以返回值区分
重写特点:
发生在父子之间
签名相同
特殊1:修饰符一定要大于等于 父类的方法的修饰符
特殊2:异常一定是小于等于 父类的方法的异常
特殊3:方法的参数类型一定是小于等于 父类的方法返回值
(4)ctor特点是什么?
构造函数(ctor)特征:
一般情况下修饰符是public
没有返回值,没有void
与类同名
可以重载
在一个类中,如果程序员没有写构造函数,那么系统会给一个无参数的构造函数
(5)接口和抽象类的异同点?
共同点: 不允许实例化
不同点: 接口可以继承接口,可以多继承. IA extends IB ,IC ,ID
抽象类只能实现接口implement,只能继承类extends. A extends B implement IA ,IB
(6)final finally finalize 区别?
finally =>异常块
final =>常量关键字.
finalize =>1.这个方法是Object类中的方法 2.这个方法是在垃圾回收之前运行的,做清理工作的.
(7)你常用的集合有哪些以及区别?
Collection =>Set =>HashSet[不允许重复,无序] TreeSet[不允许重复,自动排序]
List => ArrayList 数组结构 线程不安全 R
Vector 数据结构 线程安全
LinkedList 链表结构 线程不安全 CUD
Map => HashMap 数据 + 链表 . 线程不安全
HashTable 数据 + 链表. 线程安全.
Properties 属性文件. key value
(8)HashSet的去重原理是什么?
hashcode + equals
(9)TreeSet的比较原理是什么?
Comparator Comparable
(10)写出工作中常见的五个异常信息.
java.lang.ArrayIndexOutOfBoundsException 下标越界异常
java.lang.NumberFormatException 数字格式化异常
java.lang.ClassCastException 类型转换异常
java.lang.NullPointerException 空指针异常
ClassNotFoundException 类找不到异常
(11)TCP/IP 和 UDP/IP 分别是什么意思?
TCP/IP 三次握手协议,即面向连接的.
UDP/IP 类似于写信,即非连接协议.
(12)java中有几种方式实现多线程,你更喜欢哪一种?为什么?
Thread 和 Runnable .
Runnable更好.
因为JAVA中的继承是单继承的,如果你已经继承了Thread就不能再继承其他的类,如果你实现了Runnable接口,可以实现多继承.
(13)wait 和 sleep区别?
1.wait必须在synchronized块中.
2.wait方法是将自己线程等待,并且释放锁.
3.sleep可以在任何地方使用
4.如果sleep在synchronized中,就算是睡着了,也不释放锁. sleep(1000)
(14)同步块的单词是__synchronized _______?
(15)如何解决资源竞争问题?
锁
(16)你在工作中最常用的是哪几种索引? 请创建
单列索引和组合索引.
CREATE INDEX i_ab
ON a(name)
CREATE INDEX i_ab
ON a(name,starttime)
(17)你在工作中什么地方会使用视图?请创建一个查询视图.
N多表连查,并且多人使用的时候.
CREATE VIEW v_ab
AS
SELECT * FROM A,B
(18)请把测试服务器(a.b.c)中的数据库(apply)拉到本地.
mysqldump -h a.b.c -u root -p apply > D:\apply.sql
(19)float f=3.4;是否正确? 不正确,默认小数都是double类型的
short s1 = 1; s1 = s1 + 1;有错吗?不正确,整数默认是int类型的.所以1是int类型的.
short s1 = 1; s1 += 1;有错吗?正确.
(20)String 是最基本的数据类型吗?不是
索引的类型是什么? btree
(21)ctor 可以被重写吗? 不可以
String类可以被继承吗? 不可以
3.编码题
(1)1 1 2 3 5 8 ...显示第20位的数字,请编写核心代码
int a = 1;
int b = 1;
int c = 0;
for(int i =2 ;i <20;i++){
c = a + b;
b = a;
a = c;
}
System.out.print(c+"\t");
(2)写一个冒泡排序
for(int i = 0;i < arr.length - 1;i++){
for(int j = 0; j < arr.length - 1 - i; j++){
}
}
(3)模拟写一个死锁,请编写核心代码
class Lock{
private static Object objA = new Object();
private static Object objB = new Object();
public void funA(){
synchronized (objA){
System.out.println("funA objA 已拿到");
try {
Thread.sleep(1000);
}catch (Exception ex){
}
synchronized (objB){
System.out.println("funA objB 已拿到");
}
}
}
public void funB(){
synchronized (objB){
System.out.println("funB objB 已拿到");
try {
Thread.sleep(1000);
}catch (Exception ex){
}
synchronized (objA){
System.out.println("funB objA 已拿到");
}
}
}
}
(4)请写一段代码,返回一个100以内的随机数字.
int random = (int)(Math.random()*100);
(5)请编写核心代码: 实现两个list的数据合并.
addAll()
(6)实现一个1 + 2 - 3 + 4 - 5....100的结果.
int sum = 0;
for(int i =0;i<100;i++){
if(i % 2 == 0){
sum += i;
} else{
sum -= i;
}
}
(7)修改表中的字段addr,修改为varchar(200).
ALTER TABLE t1 CHANGE addr addr VARCHAR(200)
(8)添加一个字段memo,类型为varchar(200).
ALTER TABLE t1 ADD memo VARCHAR(200)
(9)
需求:
[9.1]建立一个公司数据库(gongsi)
CREATE DATABASE gongsi
[9.2]建立一张部门表(部门编号b_id,部门名称b_name) , 其中b_id为主键,自增长,b_name不允许为空
CREATE TABLE bm (
b_id INT PRIMARY KEY AUTO_INCREMENT,
bname VARCHAR(10) NOT NULL
)
[9.3]建立一张员工表(员工编号y_id,姓名y_name,性别y_sex,年龄y_age,住址y_address,部门编号b_id), 其中y_id为主键自增长。 住址默认为’不详’ ,b_id依赖于部门表的b_id。
CREATE TABLE yg (
y_id INT PRIMARY KEY AUTO_INCREMENT,
y_name VARCHAR(20),
y_sex VARCHAR(10),
y_age INT,
y_address VARCHAR(100) DEFAULT '不详',
b_id INT
)
ALTER TABLE yg
ADD CONSTRAINT FK_yg_b_id FOREIGN KEY (b_id) REFERENCES bm(b_id)
[9.4]查询每个部门各有多少人,显示部门名字和人数,按人数倒序,如果人数相同,按部门编号正序。
SELECT COUNT(*),bm.b_name FROM yg LEFT JOIN bm ON yg.b_id = bm.b_id GROUP BY b_id ORDER BY COUNT(*) DESC ,bm.b_id ASC