关于面试(2)

本人是职场新手,想用记录博客的方式给自己的学习之路做点笔记,若有不对还望指正!


1.Spring容器注入bean,自动注入是怎么实现的,当容器中bean被注入好了之后,怎么使用这些bean

首先是在Spring的配置文件中设置自动扫描的包,那么在编写实体类的时候在类的头部加上@autowired关键字,之后在controller层调用该实体类时也加上@autowired关键字,这样就相当于IOC容器帮你实例化了一个对象


2.Java容器有哪些?

1.Collection集合接口
①List接口
LinkList
ArrayList
Vector
Stack
②Set接口
HashSet
TreeSet
LinkSet
2.Map集合接口
HashTable
HashMap
WeakHashMap


3.Map怎么进行遍历?

1.通过map.keySet()获取到值,然后根据键获取到值

for(String s:map.keySet()){
      System.out.println("key : "+s+" value : "+map.get(s));
}
2.通过Map.Entry(String,String) 获取,然后使用entry.getKey()获取到键,通过entry.getValue()获取到值
for(Map.Entry<String, String> entry : map.entrySet()){
      System.out.println("键 key :"+entry.getKey()+" 值value :"+entry.getValue());
}	
3.通过对map进行foreach遍历,获取到key和value的值
for(Map.Entry<Integer, String> entry : map.entrySet()){  
      key = entry.getKey();  
      value = entry.getValue();  
      System.out.println(key + ":\t" + value);  
}


4.arraylist怎么删除一个元素

不同的删除方法:

public static void removeList1() {  
    List<String> list = new ArrayList<String>();  
    list.add("1");  
    list.add("2");  
    list.add("3");  
    list.add("4");  
    list.add("4");  
    list.add("5");  
    System.out.println("删除前集合的长度为:" + list.size()+":"+list);  
    for (int i = 0; i < list.size(); i++) {  
        System.out.println(i + "---" + list.get(i));  
        list.remove(i);  
    }  
    System.out.println("删除后集合的长度为:" + list.size()+":"+list);  
}
删除前集合的长度为:6:[1, 2, 3, 4, 4, 5]
0---1
1---3
2---4
删除后集合的长度为:3:[2, 4, 5]

public static void removeList2() {  
    List<String> list = new ArrayList<String>();  
    list.add("1");  
    list.add("2");  
    list.add("3");  
    list.add("4");  
    list.add("4");  
    list.add("5");  
    System.out.println("删除前集合的长度为:" + list.size()+":"+list);  
    for (int i = 0, len = list.size(); i < len; i++) {  
        System.out.println("len="+len+";i="+i+";删除元素:"+list.get(i));  
        list.remove(i);  
        len--;  
        i--;  
    }  
    System.out.println("删除后集合的长度为:" + list.size()+":"+list);  
}  
删除前集合的长度为:6:[1, 2, 3, 4, 4, 5]
len=6;i=0;删除元素:1
len=5;i=0;删除元素:2
len=4;i=0;删除元素:3
len=3;i=0;删除元素:4
len=2;i=0;删除元素:4
len=1;i=0;删除元素:5
删除后集合的长度为:0:[]

public static void removeList3() {  
        List<String> list = new ArrayList<String>();  
        list.add("1");  
        list.add("2");  
        list.add("3");  
        list.add("4");  
        list.add("4");  
        list.add("5");  
        System.out.println("删除前集合的长度为:" + list.size()+":"+list);  
        Iterator<String> it=list.iterator();  
        while(it.hasNext()&&!it.next().equals("")){  
            it.remove();  
        }  
        System.out.println("删除后集合的长度为:" + list.size()+":"+list);  
    }
删除前集合的长度为:6:[1, 2, 3, 4, 4, 5]
删除后集合的长度为:0:[]

推荐使用Iterator

5.Jdbc怎么使用?

1.首先是下载JDBC的mysql驱动,并且在项目中加入jdbc的jar包

2.写代码

import java.sql.Connection;  
import java.sql.DriverManager;  
import java.sql.ResultSet;  
import java.sql.SQLException;    
import java.sql.Statement;    
import com.mysql.jdbc.Driver;  
  
  
public class JDBC_demo1 {  
  
    public static void main(String[] args) throws SQLException {  
        // 1 注册数据库驱动  
        DriverManager.registerDriver(new Driver());  
        //2 获取数据库连接  
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mytest1","root","997843911");   
        //3 获取传输器对象  
        Statement statement= conn.createStatement();  
        //4 利用传输器 传输sql语句到数据库中执行,获取结果集对象。  
        ResultSet rs= statement.executeQuery("select * from emp");  
        //遍历查询的结果  
        while(rs.next()){  
            String resume =rs.getString("resume");  
            System.out.println("resume is "+resume);  
        }  
        //关闭资源  (最晚创建的对象 最先关闭)  
        rs.close();  
        statement.close();  
        conn.close();  
    }  
  
}

6.怎么把文档中的内容抽取出来放到一个map数组里面

/**
 * 将文件转换成map存储
 * 
 * @return
 */
private Map<String, String> fTM() {
    Map<String, String> map = new HashMap<String, String>();
    File file = new File(filePath);
    BufferedReader reader = null;
    try {
        System.out.println("以行为单位读取文件内容,一次读一整行:");
        reader = new BufferedReader(new FileReader(file));
        String tempString = null;
        int line = 1;
        // 一次读入一行,直到读入null为文件结束
        while ((tempString = reader.readLine()) != null) {
            // 显示行号
            System.out.println("line " + line + ": " + tempString);
            if (!tempString.startsWith("#")) {
                String[] strArray = tempString.split("=");
                map.put(strArray[0], strArray[1]);
            }
            line++;
        }
        reader.close();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (reader != null) {
            try {
                reader.close();
            } catch (IOException e1) {
            }
        }
    }
    for (Map.Entry entry : map.entrySet()) {
        System.out.println(entry.getKey() + "=" + entry.getValue());
    }
    return map;
}


7.抽象类还有接口的区别

1、抽象类和接口都不能直接实例化,如果要实例化,抽象类变量必须指向实现所有抽象方法的子类对象,接口变量必须指向实现所有接口方法的类对象。
2、抽象类要被子类继承,接口要被类实现。
3、接口只能做方法申明,抽象类中可以做方法申明,也可以做方法实现
4、接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量。
5、抽象类里的抽象方法必须全部被子类所实现,如果子类不能全部实现父类抽象方法,那么该子类只能是抽象类。同样,一个实现接口的时候,如不能全部实现接口方法,那么该类也只能为抽象类。
6、抽象方法只能申明,不能实现,接口是设计的结果 ,抽象类是重构的结果
7、抽象类里可以没有抽象方法
8、如果一个类里有抽象方法,那么这个类只能是抽象类
9、抽象方法要被实现,所以不能是静态的,也不能是私有的。
10、接口可继承接口,并可多继承接口,但类只能单根继承。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值