1,对集合进行排序,有哪些方法?
实现 comparable 接口
自定义排序(Comparator接口、compare方法)
2,用Java代码实现“每隔一分钟在控制台输出一次当前系统时间”,请写出你的实现或思路
使用while循环
获取当前时间,使用“hh:mm:ss”格式化
输出时间,当前线程沉睡60000毫秒后,继续输出
3,请写出几种单列模式的写法
懒汉式单列模式:在类加载时不初始化
饿汉式单列模式:在类加载时就完成了初始化,所以类加载比较慢,但获取对象的速度快。
4,Java编译后产生了NetOrder.class、NetOrder$1.class、NetOrder$2.class三个文件,第一个是类NetOrder.java译后的文件,那后两个是什么文件?
内部类的class文件
5,什么是值传递和引用传递?Java中是值传递还是引用传递
值传递:方法在调用时,传递的参数是按值的拷贝传递
引用传递:方法调用时,传递的参数是按引用进行传递,其实传递的引用的地址,也就是变量所对应的内存空间的地址。
6,请列出你常用的jquery方法
Filter()方法将匹配元素集合缩减为匹配指定选择器的元素。
text() html() val()
css()
parent() children() parents() find()
eq() siblings() index()
height() width()
add() remove() append() appendTo() prepend() prependTo()
7,Vue全家桶包含什么?
vue-cli:也叫脚手架,官方定义为Vue.js 开发的标准工具!
Vue Router: 是 Vue.js 官方的路由管理器。
Vuex: 是一个专为 Vue.js 应用程序开发的状态管理模式。
Axios: 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。
8,请列出你常用的数据库函数(不限于MySQL与oracle)
数学函数、字符串函数、时间函数、聚合函数
select count(*) from 表名;//count是非空值计数
SELECT SUM (字段) FROM 表;//求总和
SELECT AVG (字段) FROM 表;//求平均值
SELECT AVG (字段) FROM 表;//求平均值
SELECT MIN(字段) FROM 表;//获取最小值
9,如何实现乐观锁
总是认为不会产生并发问题,每次去取数据的时候总认为不会有其他线程对数据进行修改,因此不会上锁,但是在更新时会判断其他线程在这之前有没有对数据进行修改,一般会使用版本号机制或CAS操作实现。
10,多线程并发是什么问题?有哪些方法解决?
高并发是指较多用户同时访问服务。高并发可以由多线程实现,但是多线程不代表就是高并发。
解决方法:
使用了LVS + Nginx四台机器进行负载均衡
用了Spring + Redis实现4台Tomcat的Session共享
答题页面静态化,
用户提交答卷后临时存放在Redis中,直接返回结果。
定时器每隔一段时间将Redis数据保存到MySQL
11,现有N个线程在运行,如何监听到N个线程执行结束的事件?
线程的创建主要有两种方式:使用 Thread 类和 Runable 接口。
线程的监听
为了能够控制多线程中个线程的具体情况,就需要对各个线程的执行进行监听,这可以通过创建一个监听线程来实现实时监控其他线程的目的
12,SpringBoot常用注解
@SpringBootApplication:申明让spring boot自动给程序进行必要的配置
@ResponseBody:表示该方法的返回结果直接写入HTTP response body中,一般在异步获取数据时使用,用于构建RESTful的api。
@Controller:用于定义控制器类
@RestController:用于标注控制层组件
@Import:用来导入其他配置类。
@ImportResource:用来加载xml配置文件。
@Autowired:自动导入依赖的bean
@Service:一般用于修饰service层的组件
@Bean:用@Bean标注方法等价于XML中配置的bean。
@Value:注入Spring boot application.properties配置的属性的值。示例代码:
@Inject:等价于默认的@Autowired,只是没有required属性;
@Component:泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
13,如何实现URL路径传递参数
非关键字参数
url地址访问格式:/路径/路径/参数
urls正则的定义:/路径/路径/(参数匹配的正则)
注意:
如果要获取传递进来的参数,必须给对应的正则加上()才可以提取
如果url中有参数,就必须给视图函数加上参数,否则报错
14,Servlet生命周期
加载类—>实例化(为对象分配空间)—>初始化(为对象的属性赋值)—>请求处理(服务阶段)—>销毁
15,代码阅读
class HelloA {
public HelloA() {
System.out.println("HelloA");
}
{System.out.println("I'm A class");}
static { System.out.println("static A");}
}
public class HelloB extends HelloA{
public HelloB() {
System.out.println("HelloB");
}
{System.out.println("I'm B class");}
static {System.out.println("Hello B");}
public static void main(String[] args) {
new HelloB();
}
}
请写出输出语句
I'm A class
HelloA
I'm B class
HelloB
16,通过SQL语句将表1格式转换为表2格式
select name,
sum (case subiect when ‘score’ then 0 else 0 end) [name]
from (表1)
group by (表2)
17,代码阅读
public class Fu {
public int num = 10;
public Fu() {
System.out.println("fu");
}
public class Zi extends Fu{
public int num = 20;
public Zi() {
System.out.println("Zi");
}
public void show() {
int num = 30;
System.out.println(num);
System.out.println(this.num);
System.out.println(super.num);
}
class ExtendsTest {
public static void main(String[] args) {
Zi z = new Zi();
z.show();
}
请写出输出是什么
fu
Zi
30
20
10
18,现有学生表如下(表名:score)
要求写一个SQL语句,删除除了编号不同其他都相同的学生的记录
delete from score where 编号 not in( select min(编号) 编号from score group by code
) ;
19,假设有一张表示成绩的表score:
要求列出所有各门功课都在80分以上的学生的姓名
select Name,Subject,fenshu from score group by name
having count(score) = sum(case when score > 80 then 1 else 0 end)
20,请写出匹配“长度为 8 - 10,以字母开头,包括字母、数字、下划线的密码”的正则表达式。
^[a-zA-Z]\w{7,9}$
21,回答以下代码,alert的值分别是多少?
<script type="text/javascript">
var a = 100;
function test(){
alert(a);//100
a = 10;
alert(a);//10
}
test();
alert(a);//10
</script>
22,有如下一段代码,请写出输出值?
private static void change(StringBuffer str11, StringBuffer str12) {
str12 = str11;
str11 = new StringBuffer("new world");
str12.append("new world");
}
public static void main(String[] args) {
StringBuffer str1 = new StringBuffer("good ");
StringBuffer str2 = new StringBuffer("bad ");
change(str1, str2);
System.out.println(str1.toString());
System.out.println(str2.toString());
}
good new world
bad
23,单例模式有几种?请代码实现至少两种。
饿汉式单例类(饿汉式则是用空间来换时间,线程安全。)
package pattern.singleton;
//饿汉式单例类.在类初始化时,已经自行实例化
public class Singleton1 {
//私有的默认构造子
private Singleton1() {}
//已经自行实例化
private static final Singleton1 single = new Singleton1();
//静态工厂方法
public static Singleton1 getInstance() {
return single;
}
}
懒汉式单例类
懒汉式则用时间来换空间,非线程安全.可以使用synchronized声明访问点,但是工作效率低.
package pattern.singleton;
//懒汉式单例类.在第一次调用的时候实例化
public class Singleton2 {
//私有的默认构造子
private Singleton2() {}
//注意,这里没有final
private static Singleton2 single;
//静态工厂方法
public static Singleton2 getInstance() {
if (single == null) {
single = new Singleton2();
}
return single;
}
}
24,sql 内连接的两种写法?
内连接查询:只查询左边表有且右边表也有的数据,本质上是依据外键关系,在笛卡尔积查询的基础上过滤出正确的数据。
语句有2种形式:
Select * from dept ,emp where dept.id=emp.dept_id
Select * from dept inner join emp on dept.id =emp.dept_id
25,java数组({"a","d","b","c","c","d","e","e","e","a"})去重,请代码实现。
public static void main(String[] args) {
String[] arr={"a","d","b","c","c","d","e","e","e","a"};
//数组去重:
// (将数据放入到新的List里面)
List<String> list = Lists.newArrayList();
for (int i = 0; i < arr.length; i++) {
if (!list.contains(arr[i])) {
list.add(arr[i]);
}
}
list.stream().forEach(System.out::println);
26,如下代码是否存在问题? 请说明?
public void retrieveObjectById(Long id){
try{
//…抛出 IOException 的代码调用
//…抛出 SQLException 的代码调用
}catch(Exception e){
throw new RuntimeException(“Exception in retieveObjectById”, e);
}
}
已经try - catch 了就不用 throw
27,有以下三张表(学生表、课程表、成绩表),请写出对应的sql(考察点:sql)
Student 学生表
CREATE TABLE student (
sid varchar(10) NOT NULL,
sName varchar(20) DEFAULT NULL,
sAge datetime DEFAULT '1980-10-12 23:12:36',
sSex varchar(10) DEFAULT NULL,
PRIMARY KEY (sid)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Course 课程表
CREATE TABLE course (
cid varchar(10) NOT NULL,
cName varchar(10) DEFAULT NULL,
tid int(20) DEFAULT NULL,
PRIMARY KEY (cid)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
SC 成绩表
CREATE TABLE sc (
sid varchar(10) DEFAULT NULL,
cid varchar(10) DEFAULT NULL,
score int(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
问题:
查询“001”课程比“002”课程成绩高的所有学生的学号;
select a.S# from SC a, SC b where a.S#=b.S# and a.C#='001' and b.C#='002' and a.score>b.score
查询平均成绩大于60分的同学的学号和平均成绩;
select sid,avg(score) from SC group by sid having avg(score)>60;
查询所有同学的学号、姓名、选课数、总成绩;
select a.sid,a.sname,count(b.cid),sum(b.score) from Student as a left join SC as b on a.sid=b.sid group by sid,sname;