优质面试题(基础)

1.2018-4-10
什么是spring的ioc,di,aop
ioc:将对象的创建交给spring来创建,大幅降低代码之间的耦合度
di:将spring管理的对象通过Autowrite注解注入到我们需要的地方,注入的对象是由spring管理的
AOP:面向切面编程,不改动源代码的情况下,灵活添加业务逻辑实现

1>不修改源码就进行方法的扩展
2>aop的本质就是横向代码抽取机制
3>如果是结构使用JDK的动态代理,如果是类使用CGLIB方式实现动态代理(继承)

2.2018-04-12
java线程池的四种创建方式
1>newCachedThreadPool创建一个可缓存线程池,若线程池长度超过处理需要,可灵活回收空闲线程,
0若无可回收,则新建线程
2>newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待
3>newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行
4>newSingleThreadExecutor创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,
保证所有任务按照指定顺序(FIFO,LIFO,优先级)执行

原生线程池ThreadPoolExecutor:
java中的线程池是用ThreadPoolExecutor类来实现的,用于单个任务处理时间比较短,并需要处理的任务数量很大的情况下,
可以达到降低资源消耗,提高响应速度,提高线程的可管理性.

2019-04-15
1.statament和preparedStatement有什么区别?哪个性能更好?
与statement相比
1>PrepareStatement接口代表预编译的语句,
它主要的优势在于可以减少SQL的编译错误并增加SQL的安全性(减少SQL注入攻击的可能性);
2>PreparedStatement中SQL语句是可以带参数的,避免了用字符串连接/拼接SQL语句的麻烦和不安全;
3>当批量处理SQL或频繁执行相同的查询时,PrepareStatement有明显的性能上的优势,
由于数据库可以将编译优化后的SQL语句缓存起来,下次执行相同结构的语句就会很快(不用编译和生成执行计划)

2.阐述JDBC操作数据库的步骤
1>加载驱动
2>创建连接
3>创建语句
4>执行语句
5>处理结果
6>关闭资源

2019-04-16
1.ArrayList和LinkedList有什么区别?
ArrayList底层使用的是数组,存读效率高,插入删除特定位置效率低,常用于数据量不太大时
LinkedList底层使用的是双向链表数据结构,插入删除效率高,查询效率较低,用于数据特别多,
而且需要经常插入删除元素时使用

2.有一个字符串,其中包含中文字符,英文字符和数字字符,请统计和打印出各个字符的个数

public static void main(String [] args){
    String str = "zhong国人很6你很棒";
    int englishCount=0;
    int chineseCount=0;
    int digitCount = 0;
    for (int i=0;i<str.length();i++){
        char ch =str.charAt(i);
        if(ch>='0'&&ch<='9'){
        digitCount++;

    }else if(ch>='a' && ch<='z')||(ch>='A'&&ch<='z'){
        englishCount++;
    }else{    
        chineseCount++;
    }
}
    System.out.println("英文字符:"+englishCount);
    System.out.println("中文字符:"+chineseCount);
    System.out.println("数字字符:"+digitCount);
}

2019-04-17
1.线程的通常有五种状态
创建状态->就绪状态->运行状态->阻塞状态->死亡状态

2.事务的四大特性:
1.原子性:事务中所有操作是不可分割的单元,事务中所有操作要么都执行成功,要么都执行失败
2.一致性:事务必须使数据库从一个一致性状态变换到另一个一致性状态,
也就是说一个事务执行之前和执行之后都必须处于一致性状态
3.隔离性:隔离性是指在并发操作时,不同事务之间应该隔离开来,
使每个并发中的事务不会相互干扰
4.持久性:一旦事务提交成功,事务中所有的数据操作都必须被持久化保存到数据库中,
即使提交事务后,数据库崩溃,在数据库重启时,也必须能保证通过某种机制恢复数据
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值