什么是面向对象
- 面向过程更注重每一个步骤及顺序
- 面向对象更注重有哪儿些参与者(对象)、以及各自需要做什么
- 面向过程比较直接高效
- 面向对象更易于扩展和维护
继承、封装 、 多态
封装: 封装的意义在于明确标识出允许外部使用的所有成员函数和数据项
- 内部细节对外部调用透明、外部调用无须修改或者关心内部实现
- 典型封装场景:
- JavaBean的属性私有,提供getset对外访问,因为属性的赋值或者获取逻辑只能由JavaBean本身决定,而不能由外部胡乱修改
- ORM框架:
- 操作数据库 , 我们不需要关心链接是如何建立的、sql是如何执行的 , 只需要引入mybatis调方法即可
继承: 继承基类的方法,并做出自己的改变或扩展
- 子类共性的方法或者属性直接使用父类的 , 而不需要自己再定义,只需扩展自己个性化的
多态: 基于对象所属类的不同 , 外部对同一个方法的调用,实际执行的逻辑不同
- 多态三个条件:
- 继承
- 方法重写
- 父类引用指向子类对象
- 多态无法调用子类特有的功能
- 因为这个方法必须在父类中有 , 也就是必须是重写方法
职业规划
假如我是应聘者,首先,我会说自己会把自己学到的理论知识、专业技能等,应用在实际的项目任务当中。
等我熟悉了产品的业务逻辑后,我会开始大量应用我会开始大量应用主流技术来提高工作效率,确保高质量地完成工作任务。
同时,我会在项目中去学习软件开发的流程、进度报告的编制等,后期争取有机会去实践web项目管理。
HashMap和ArrayList之间的区别
- 相同点:
- 获取元素个数的方法都是size()
- 都可以存储null值
- 都是线程不安全的
- 不同点:
- ArrayList实现接口是List
- HashMap实现接口是Map
- ArrayList以数组方式存储 , 元素有序 , 可重复
- HashMap以键值对方式存储,键不可重复 , 值可重复
- ArrayList的添加元素方法是add
- HashMap的添加元素的方法是put
- ArrayList默认大小是10
- HashMap的默认大小是16
Array和ArrayList的区别
- ArrayList只能包含对象类型
- Array可以对象类型也可以包含基本类型
- ArrayList大小是动态的
- Array大小是固定的
- ArrayList增加了更多的方法和特性
String 和 StringBUffer 和 StringBuilder之间的区别
- String是不可变的
- StringBuffer是可变的 , 且线程安全
- StringBuilder是可变的,线程不安全,效率最高
ArrayList遍历:
List<String> list = new ArrayList<>();
list.add("哈哈哈");
list.add("嘻嘻嘻");
list.add("啦啦啦");
list.add("游戏");
list.add("略略略");
//遍历方法一:通过迭代器Iterator进行遍历
Iterator iter = list.iterator();
while(iter.hasNext()){
String name = iter.next();
System.out.println(name);
}
//遍历方法二:使用for循环遍历
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
// 遍历方法三:
for (String s : list) {
System.out.println(s);
}
// 遍历方法四:
Set<Map.Entry<String, String>> entries = map.entrySet();
for (Map.Entry<String, String> entry : entries) {
System.out.println(entry.getKey() + "," + entry.getValue());
}
HashMap遍历:
Map<String, String> map = new HashMap<>();
map.put("ss","trt");
map.put("aa","dsf");
map.put("vv","fsd");
map.put("ff","fgs");
// 第一种遍历
for (String s : map.keySet()) {
System.out.println(s + "," + map.get(s));
}
// 第二种遍历
Iterator<String> iterator = map.keySet().iterator();
while (iterator.hasNext()) {
String next = iterator.next();
System.out.println(next + "," + map.get(next));
}
// 第三种遍历
map.forEach((key , value) -> {
System.out.println(key + ":" + value);
});
try和throwException的区别,分别什么时候用
-
原则:如果该功能内部可以将问题处理,用 try,如果处理不了,交由调用者处理,这是用 throws
-
区别:
-
throw exception直接终止方法,或者退出循环。
-
try catch还要继续处理方法余下的逻辑,或者不结束循环。
-
try catch 不中断,throw exception中断
-
-
finally什么时候用
不管程序是否有异常,finally的代码都会执行
数据库的左连接和右连接还有内连接
-
内连接
- 是一种一一映射的关系,只有两张表都有的数据才能查询出来
-
左连接:
- 左边表所有数据都显示出来
- 右边表显示共同数据,其他为空
-
右连接
- 右边表所有数据
- 左边表显示共有数据,没有对应部分补空
-
OUTER JOIN(外连接、全连接)
- 查询出左表和右表所有数据,但是去除两表的重复数据
-
LEFT JOIN EXCLUDING INNER JOIN(左连接不包含内连接)
- 这个查询是只查询左边表有的数据,共同有的也不查出来
-
RIGHT JOIN EXCLUDING INNER JOIN(右连接不包含内连接)
- 这个查询是只查询右边表有的数据,共同有的也不查出来
-
OUTER JOIN EXCLUDING INNER JOIN(外连接不包含内连接)
- 意思就是查询左右表各自拥有的那部分数据
JDK体系结构
Javalangue(常用java工具集):包含java 、 javac 、 jar 、 javap等
JRE: java运行时环境 : lang包 , util包 、 collections 、inputOutPut等等
加粗样式: java virtual Machine : java虚拟机