本人是职场新手,想用记录博客的方式给自己的学习之路做点笔记,若有不对还望指正!
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);
}
不同的删除方法:
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;
}
1、抽象类和接口都不能直接实例化,如果要实例化,抽象类变量必须指向实现所有抽象方法的子类对象,接口变量必须指向实现所有接口方法的类对象。
2、抽象类要被子类继承,接口要被类实现。
3、接口只能做方法申明,抽象类中可以做方法申明,也可以做方法实现
4、接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量。
5、抽象类里的抽象方法必须全部被子类所实现,如果子类不能全部实现父类抽象方法,那么该子类只能是抽象类。同样,一个实现接口的时候,如不能全部实现接口方法,那么该类也只能为抽象类。
6、抽象方法只能申明,不能实现,接口是设计的结果 ,抽象类是重构的结果
7、抽象类里可以没有抽象方法
8、如果一个类里有抽象方法,那么这个类只能是抽象类
9、抽象方法要被实现,所以不能是静态的,也不能是私有的。
10、接口可继承接口,并可多继承接口,但类只能单根继承。