X Tutup
Skip to content

Commit 12bae67

Browse files
committed
auto commit
1 parent c32a4bf commit 12bae67

File tree

8 files changed

+45
-93
lines changed

8 files changed

+45
-93
lines changed

OVERVIEW.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
| | Redis | | | | | |
2424
| | | | | | | |
2525
| **四、操作系统** | | | | | | |
26-
| | [Linux](notes/Linux.md) | | | | | |
26+
| | [Linux](notes/Linux.md) | | v2.5 | | | |
2727
| | [操作系统](notes/操作系统.md) | | v2.5 | 基础版 | | 7/30初版,8/22 复习 |
2828
| | | | | | | |
2929
| **五、网络部分** | | | | | | |

course/24 操作系统(清华大学).md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
## 《操作系统_清华大学(向勇、陈渝) 》学习记录
1+
## 操作系统_清华大学(向勇、陈渝)
2+
23
| 章节 | 记录 |
34
| ------------------------------------------ | ---- |
45
| 1.1 课程概述 | |
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
网易游戏2017暑期实习生面经 Java开发_笔经面经_牛客网
2+
https://interview.nowcoder.com/discuss/59422
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
(1条未读消息) 网易考拉 java 凉面面经_笔经面经_牛客网
2+
https://www.nowcoder.com/discuss/97738
3+
4+
5+
6+
7+
8+
网易杭州研究院面经_笔经面经_牛客网
9+
https://www.nowcoder.com/discuss/97488
10+
11+
12+
13+
14+
15+
【面试经验】分享一篇网易杭州研究院的面经_笔经面经_牛客网
16+
https://www.nowcoder.com/discuss/73109
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
聊聊C10K问题及解决方案 - 陶邦仁的个人空间 - 开源中国
2+
https://my.oschina.net/xianggao/blog/664275

notes/JavaArchitecture/01 Java 基础.md

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,9 @@ Derived constructor!
169169

170170

171171

172+
- 参考资料:
173+
- [C++ 工程实践(8):值语义 - 陈硕 - 博客园](http://www.cnblogs.com/Solstice/archive/2011/08/16/2141515.html)
174+
172175
## 2. 什么是反射
173176

174177
通过Class获取class信息称之为反射(Reflection)。反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。
@@ -556,8 +559,6 @@ Java面向对象的基本思想之一是封装细节并且公开接口。Java语
556559

557560
- **开放封闭**(Open Closed Principle 简称 OCP):**软件实体应当对扩展开放,对修改关闭**。要做到开闭有两个要点:①抽象是关键,一个系统中如果没有抽象类或接口系统就没有扩展点;②封装可变性,将系统中的各种可变因素封装到一个继承结构中,如果多个可变因素混杂在一起,系统将变得复杂而换乱。
558561

559-
560-
561562
- 其他原则
562563

563564
- 合成聚和复用:优先使用聚合或合成关系复用代码
@@ -912,11 +913,11 @@ public class Demo{
912913

913914
**向上造型**
914915

915-
父类引用指向子类对象,例如:Father f1 = new Son();
916+
父类引用指向子类对象,例如:Father f1 = new Son();
916917

917918
**向下造型**
918919

919-
把指向子类对象的父类引用赋给子类引用,需要强制转换,例如:
920+
把指向子类对象的父类引用赋给子类引用,需要强制转换,例如:
920921

921922
```java
922923
Father f1 = new Son();
@@ -960,7 +961,7 @@ y.a = 1;
960961

961962
- **2. 方法**
962963

963-
声明方法不能被子类覆盖。
964+
声明方法不能被子类覆盖。
964965

965966
- private 方法隐式地被指定为 final,如果在子类中定义的方法和基类中的一个 private 方法签名相同,此时子类的方法不是覆盖基类方法,而是在子类中定义了一个新的方法。
966967

@@ -974,7 +975,7 @@ y.a = 1;
974975

975976
- **1. 静态变量**
976977

977-
静态变量在内存中只存在一份,只在类初始化时赋值一次。
978+
静态变量在内存中只存在一份,只在类初始化时赋值一次。
978979

979980
- 静态变量:类所有的实例都共享静态变量,可以直接通过类名来访问它;
980981
- 实例变量:每创建一个实例就会产生一个实例变量,它与该实例同生共死。
@@ -986,7 +987,7 @@ public class A {
986987
}
987988
```
988989

989-
注意:不能再成员函数内部定义static变量。
990+
注意:不能再成员函数内部定义static变量。
990991

991992
- **2. 静态方法**
992993

@@ -1032,7 +1033,7 @@ public String field = "实例变量";
10321033
}
10331034
```
10341035

1035-
最后才运行构造函数
1036+
最后才运行构造函数
10361037

10371038
```java
10381039
public InitialOrderTest() {
@@ -1220,7 +1221,7 @@ assert的应用范围很多,主要包括:
12201221

12211222
> 每次都读错,美式发音:volatile /'vɑlətl/ adj. [化学] 挥发性的;不稳定的;爆炸性的;反复无常的
12221223
1223-
volatile是一个**类型修饰符**(type specifier),它是被设计用来修饰被不同线程访问和修改的变量。在使用volatile修饰成员变量后,所有线程在任何时间所看到变量的值都是相同的。此外,使用volatile会组织编译器对代码的优化,因此会降低程序的执行效率。所以,除非迫不得已,否则,能不使用volatile就尽量不要使用volatile
1224+
volatile是一个**类型修饰符**(type specifier),它是被设计用来修饰被不同线程访问和修改的变量。在使用volatile修饰成员变量后,所有线程在任何时间所看到变量的值都是相同的。此外,使用volatile会组织编译器对代码的优化,因此会降低程序的执行效率。所以,除非迫不得已,否则,能不使用volatile就尽量不要使用volatile
12241225

12251226
- 每次访问变量时,总是获取主内存的最新值
12261227
- 每次修改变量后,立刻写回到主内存中
@@ -1340,7 +1341,7 @@ public class TestDemo {
13401341
}
13411342
```
13421343

1343-
上面的代码在jdk1.4以后的版本都不会报错,它实现了自动拆装箱的功能,如果是jdk1.4,就得这样写了
1344+
上面的代码在jdk1.4以后的版本都不会报错,它实现了自动拆装箱的功能,如果是jdk1.4,就得这样写了
13441345

13451346
```java
13461347
jdk 1.4
@@ -1592,7 +1593,7 @@ public class Solution {
15921593
## 8. &和&& 、|和||的区别?【阿里实习生面试】
15931594

15941595

1595-
(1)&&和&都是表示与,区别是&&只要第一个条件不满足,后面条件就不再判断。而&要对所有的条件都进行判断。
1596+
(1)&&和&都是表示与,区别是&&只要第一个条件不满足,后面条件就不再判断。而&要对所有的条件都进行判断。
15961597

15971598
```java
15981599
// 例如:
@@ -1612,7 +1613,6 @@ public static void main(String[] args) {
16121613

16131614
- &时要对所有的条件进行判断,所以会对后面的条件进行判断,所以会报错。
16141615

1615-
16161616

16171617
(2)||和|都是表示“或”,区别是||只要满足第一个条件,后面的条件就不再判断,而|要对所有的条件进行判断。 看下面的程序:
16181618

@@ -1669,7 +1669,6 @@ public static void main(String[] args) {
16691669

16701670
- 在存储散列集合时(如Set类),如果原对象.equals(新对象),但没有对hashCode重写,即两个对象拥有不同的hashCode,则在集合中将会存储两个值相同的对象,从而导致混淆。因此在重写equals方法时,必须重写hashCode方法。
16711671

1672-
16731672

16741673
## 3. 如果你定义一个类,包括学号,姓名,分数,如何把这个对象作为key?要重写equals和hashcode吗
16751674

notes/JavaArchitecture/07 Java Web.md

Lines changed: 9 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -1,65 +1,6 @@
1-
<!-- TOC -->
2-
3-
- [前言](#前言)
4-
- [一、Servlet & JSP](#一servlet--jsp)
5-
- [1. Servlet执行流程](#1-servlet执行流程)
6-
- [2. Servlet生命周期【阿里面经OneNote】](#2-servlet生命周期阿里面经onenote)
7-
- [3. Tomcat装载Servlet的三种情况](#3-tomcat装载servlet的三种情况)
8-
- [4. Servlet中forward和redirect有什么区别【B172】](#4-servlet中forward和redirect有什么区别b172)
9-
- [5. Jsp和Servlet的区别](#5-jsp和servlet的区别)
10-
- [6. tomcat和Servlet的联系](#6-tomcat和servlet的联系)
11-
- [7. cookie和session的区别](#7-cookie和session的区别)
12-
- [8. JavaEE中的三层结构和MVC](#8-javaee中的三层结构和mvc)
13-
- [二、Spring](#二spring)
14-
- [1. Spring IOC、AOP的理解、实现的原理,以及优点 【蚂蚁金服面经】](#1-spring-iocaop的理解实现的原理以及优点-蚂蚁金服面经)
15-
- [IOC](#ioc)
16-
- [AOP](#aop)
17-
- [2. 什么是依赖注入,注入的方式有哪些](#2-什么是依赖注入注入的方式有哪些)
18-
- [3. Spring IOC初始化过程](#3-spring-ioc初始化过程)
19-
- [4. 项目中Spring AOP用在什么地方,为什么这么用,切点,织入,通知用自己的话描述一下](#4-项目中spring-aop用在什么地方为什么这么用切点织入通知用自己的话描述一下)
20-
- [5. AOP动态代理2种实现原理,他们的区别是什么?](#5-aop动态代理2种实现原理他们的区别是什么)
21-
- [6. Struts拦截器和Spring AOP区别](#6-struts拦截器和spring-aop区别)
22-
- [7. Spring 是如何管理事务的,事务管理机制](#7-spring-是如何管理事务的事务管理机制)
23-
- [如何管理的](#如何管理的)
24-
- [8. Spring中bean加载机制,生命周期](#8-spring中bean加载机制生命周期)
25-
- [加载机制](#加载机制)
26-
- [生命周期](#生命周期)
27-
- [9. Bean实例化的三种方式](#9-bean实例化的三种方式)
28-
- [10. BeanFactory 和 FactoryBean的区别](#10-beanfactory-和-factorybean的区别)
29-
- [11. BeanFactory和ApplicationContext的区别](#11-beanfactory和applicationcontext的区别)
30-
- [BeanFactory](#beanfactory)
31-
- [两者装载bean的区别](#两者装载bean的区别)
32-
- [我们该用BeanFactory还是ApplicationContent](#我们该用beanfactory还是applicationcontent)
33-
- [ApplicationContext其他特点](#applicationcontext其他特点)
34-
- [spring的AOP(常用的是拦截器)](#spring的aop常用的是拦截器)
35-
- [spring载入多个上下文](#spring载入多个上下文)
36-
- [12. ApplicationContext 上下文的生命周期](#12-applicationcontext-上下文的生命周期)
37-
- [13. Spring中autowire和resourse关键字的区别](#13-spring中autowire和resourse关键字的区别)
38-
- [14. Spring的注解讲一下,介绍Spring中的熟悉的注解](#14-spring的注解讲一下介绍spring中的熟悉的注解)
39-
- [一: 组件类注解](#一-组件类注解)
40-
- [二:装配bean时常用的注解](#二装配bean时常用的注解)
41-
- [15. Spring 中用到了那些设计模式?](#15-spring-中用到了那些设计模式)
42-
- [工厂模式(Factory Method)](#工厂模式factory-method)
43-
- [单态模式【单例模式】(Singleton)](#单态模式单例模式singleton)
44-
- [适配器(Adapter)](#适配器adapter)
45-
- [代理(Proxy)](#代理proxy)
46-
- [观察者(Observer)](#观察者observer)
47-
- [16. Spring 的优点有哪些](#16-spring-的优点有哪些)
48-
- [二、SpringMVC](#二springmvc)
49-
- [1. Spring MVC的工作原理](#1-spring-mvc的工作原理)
50-
- [2. SpringMVC流程具体叙述下](#2-springmvc流程具体叙述下)
51-
- [3. Spring MVC注解的优点](#3-spring-mvc注解的优点)
52-
- [三、Hibernate](#三hibernate)
53-
- [1. 简述Hibernate常见优化策略。](#1-简述hibernate常见优化策略)
54-
- [2. Hibernate一级缓存与二级缓存之间的区别](#2-hibernate一级缓存与二级缓存之间的区别)
55-
- [3. Hibernate的理解](#3-hibernate的理解)
56-
- [附录:参考资料](#附录参考资料)
57-
58-
<!-- /TOC -->
59-
601
# 前言
612

62-
在本文中将总结Java Web开发技术和相关框架的核心知识和面试指南。因框架知识体系比较庞大,具体每个框架的使用我将放在`../JavaWeb`这个目录下,包含Spring、Strust2、Hibernate、Spring Boot等框架
3+
在本文中将总结 Java Web 开发技术和相关框架的核心知识。因框架知识体系比较庞大,具体每个框架的使用我将放在`../JavaWeb`这个目录下,包含Spring、Strust2、Hibernate、Spring Boot 等框架
634

645

656

@@ -73,7 +14,7 @@
7314

7415

7516

76-
> 在面试指南中将罗列面试中常见的考点,包含Servlet、JSP、Spring、中间件等常考Java Web框架知识
17+
> 在面试指南中将列举面试中常见的考点,包含Servlet、JSP、Spring、中间件等常考Java Web框架知识
7718
>
7819
7920

@@ -100,9 +41,9 @@ https://www.cnblogs.com/zhangyinhua/p/7625851.html
10041

10142
特性:
10243

103-
单例,一个类只有一个对象,当然可能存在多个Servlet类
44+
单例,一个类只有一个对象,当然可能存在多个Servlet类
10445

105-
线程不安全的,所以它的效率高。
46+
线程不安全的,所以它的效率高。
10647

10748
Servlet类由自己编写,但对象由服务器来创建,并由服务器来调用相应的方法 
10849

@@ -126,17 +67,15 @@ Servlet类由自己编写,但对象由服务器来创建,并由服务器来
12667

12768
1)Servlet何时创建
12869

129-
默认第一次访问servlet时创建该对象(调用init()方法)
70+
默认第一次访问servlet时创建该对象(调用init()方法)
13071

13172
2)Servlet何时销毁
13273

133-
服务器关闭servlet就销毁了(调用destroy()方法)
74+
服务器关闭servlet就销毁了(调用destroy()方法)
13475

13576
3)每次访问必须执行的方法
13677

137-
​ public void service(ServletRequest arg0, ServletResponse arg1)
138-
139-
78+
public void service(ServletRequest arg0, ServletResponse arg1)
14079

14180

14281

@@ -182,7 +121,7 @@ https://www.cnblogs.com/iOS-mt/p/5619440.html
182121

183122
## 6. tomcat和Servlet的联系
184123

185-
Tomcat 是Web应用服务器,是一个Servlet/JSP容器. Tomcat 作为Servlet容器,负责处理客户请求,把请求传送给Servlet,并将Servlet的响应传送回给客户.而Servlet是一种运行在支持Java语言的服务器上的组件.。
124+
Tomcat 是Web应用服务器,是一个Servlet/JSP容器. Tomcat 作为Servlet容器,负责处理客户请求,把请求传送给Servlet,并将Servlet的响应传送回给客户.而Servlet是一种运行在支持Java语言的服务器上的组件.。
186125

187126
  Servlet最常见的用途是扩展Java Web服务器功能,提供非常安全的,可移植的,易于使用的CGI替代品。
188127

@@ -194,7 +133,7 @@ https://www.cnblogs.com/iOS-mt/p/5619440.html
194133

195134
<div align="center"> <img src="D:/gitdoc/2019_campus_appy/notes/pics/servlet-tomcat.png" width=""/></div><br/>
196135

197-
1)Tomcat将http请求文本接收并解析,然后封装成HttpServletRequest类型的request对象,所有的HTTP头数据读可以通过request对象调用对应的方法查询到。
136+
1)Tomcat将http请求文本接收并解析,然后封装成HttpServletRequest类型的request对象,所有的HTTP头数据读可以通过request对象调用对应的方法查询到。
198137

199138
  2)Tomcat同时会要响应的信息封装为HttpServletResponse类型的response对象,通过设置response属性就可以控制要输出到浏览器的内容,然后将response交给tomcat,tomcat就会将其变成响应文本的格式发送给浏览器。
200139

@@ -261,8 +200,6 @@ Spring的IoC容器是Spring的核心,Spring AOP是spring框架的重要组成
261200
- 通过反射创建实例;
262201
- 获取需要注入的接口实现类并将其赋值给该接口。
263202

264-
265-
266203
- **优点**
267204

268205
- 解耦合,开发更方便组织分工
@@ -281,8 +218,6 @@ Spring的IoC容器是Spring的核心,Spring AOP是spring框架的重要组成
281218
- 面向切面编程提供声明式事务管理
282219
- AOP就是典型的代理模式的体现
283220

284-
285-
286221
- **Spring AOP实现原理**
287222

288223
- 动态代理(利用**反射和动态编译**将代理模式变成动态的)
@@ -297,8 +232,6 @@ Spring的IoC容器是Spring的核心,Spring AOP是spring框架的重要组成
297232
- CGLibProxy返回的动态代理类,则是目标代理类的一个子类(代理类扩展了UserDaoImpl类)
298233
- cglib继承被代理的类,重写方法,织入通知,动态生成字节码并运行
299234

300-
301-
302235
- **优点**
303236

304237
- 各个步骤之间的良好隔离性
@@ -320,7 +253,6 @@ Spring的IoC容器是Spring的核心,Spring AOP是spring框架的重要组成
320253
- 使用接口注入
321254
- 注解注入(@Autowire)
322255

323-
324256

325257
## 3. Spring IOC初始化过程
326258

notes/操作系统.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1006,7 +1006,7 @@ fork() 函数不需要参数,返回值是一个进程标识符 (PID)。对于
10061006

10071007
3. 如果创建出错,则 fork() 函数返回 -1。
10081008

1009-
fork() 函数会创建一个新的进程,并从内核中为此进程分配一个新的可用的进程标识符 (PID),之后,为这个新进程分配进程空间,并将父进程的进程空间中的内容复制到子进程的进程空间中,包括父进程的数据段和堆栈段,并且和父进程共享代码段。这时候,系统中又多了一个进程,这个进程和父进程一模一样,两个进程都要接受系统的调度。
1009+
fork() 函数会创建一个新的进程,并从内核中为此进程分配一个新的可用的进程标识符 (PID),之后,为这个新进程分配进程空间,并将父进程的进程空间中的内容复制到子进程的进程空间中,包括父进程的数据段和堆栈段,并且和父进程共享代码段(写时复制)。这时候,系统中又多了一个进程,这个进程和父进程一模一样,两个进程都要接受系统的调度。
10101010

10111011
**注意**:由于在复制时复制了父进程的堆栈段,所以两个进程都停留在了 fork() 函数中,等待返回。因此,fork() 函数会返回两次,一次是在父进程中返回,另一次是在子进程中返回,这两次的返回值是不一样的。
10121012

0 commit comments

Comments
 (0)
X Tutup