第 1 页 共 10 页

一、你对 MVC 的理解, MVC 有什么优缺点?结合 Struts ,说明在一个 Web 应用如何去使

用?
答:
MVC 设计模式(应用观察者模式的框架模式)
M: Model(Business process layer) ,模型,操作数据的业务处理层 , 并独立于表现层 (Independe nt
of presentation) 。
V: View(Presentation layer) ,视图,通过客户端数据类型显示数据 , 并回显模型层的执行结果 。
C: Controller(Control layer) ,控制器,也就是视图层和模型层桥梁,控制数据的流向,接受
视图层发出的事件,并重绘视图
MVC 框架的一种实现模型
模型二 (Servlet-centric) :
JSP+Servlet+JavaBean ,以控制为核心, JSP 只负责显示和收集数据, Sevlet ,连接视图和模
型,将视图层数据,发送给模型层, JavaBean ,分为业务类和数据实体,业务类处理业务 数
据,数据实体,承载数据,基本上大多数的项目都是使用这种 MVC 的实现模式。
StrutsMVC 框架 (Web application frameworks)
Struts 是使用 MVC 的实现模式二来实现的,也就是以控制器为核心。
Struts 提供了一些组件使用 MVC 开发应用程序:
Model : Struts 没有提供 model 类。这个商业逻辑必须由 Web 应用程序的开发者以 JavaBea n
或 EJB 的形式提供
View : Struts 提供了 action form 创建 form bean, 用于在 controlle r 和 view 间传输数据。此 外 ,
Struts 提供了自定义 JSP 标签库,辅助开发者用 JSP 创建交互式的以表单为基础的应用程 序 ,
应用程序资源文件保留了一些文本常量和错误消息,可转变为其它语言,可用于 JSP 中。
Controller : Struts 提供了一个核心的控制器 ActionServlet ,通过这个核心的控制器来调用其
他用户注册了的自定义的控制器 Action ,自定义 Action 需要符合 Struts 的自定义 Action 规
范,还需要在 struts-config.xml 的特定配置文件中进行配置,接收 JSP 输入字段形成 Action
form ,然后调用一个 Action 控制器。 Action 控制器中提供了 model 的逻辑接口。
二、什么是 WebService ?
答:
WebService 是一个 SOA (面向服务的编程)的架构,它是不依赖于语言,不依赖于平
台,可以实现不同的语言间的相互调用,通过 Internet 进行基于 Http 协议的网络应用间的 交
互。
WebService 实现不同语言间的调用,是依托于一个标准, webservice 是需要遵守 WSD L
( web 服务定义语言) /SOAP (简单请求协议)规范的。
WebService=WSDL+SOAP+UDDI ( webservice 的注册)
Soap 是由 Soap 的 part 和 0 个或多个附件组成,一般只有 part ,在 part 中有 Envelope 和
Body 。
Web Service 是通过提供标准的协议和接口,可以让不同的程序集成的一种 SOA 架构。第 2 页 共 10 页
Web Service 的优点
(1) 可以让异构的程序相互访问(跨平台)
(2) 松耦合
(3) 基于标准协议(通用语言,允许其他程序访问)
Web Service 的基本原理
(1) Service Provide r 采用 WSDL 描述服务
(2) Service Provider 采用 UDDI 将服务的描述文件发布到 UDDI 服务器( Register server )
(3) Service Requestor 在 UDDI 服务器上查询并 获取 WSDL 文件
(4) Service requestor 将请求绑定到 SOAP ,并访问相应的服务。
三、什么是中间件?
中间件就是程序中可织入的,可重用的,与业务逻辑无关的各种组件。
中间件( middleware )是基础软件的一大类,属于可复用软件的范畴。顾名思义,中 间
件处于操作系统软件与用户的应用软件的中间。中间件在操作系统、网络和数据库之上, 应
用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户 灵
活、高效地开发和集成复杂的应用软件。
在众多关于中间件的定义中,比较普遍被接受的是 IDC 表述的:中间件是一种独立的
系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件 位
于客户机服务器的操作系统之上,管理计算资源和网络通信。
分类:数据访问中间件,远程调用中间件,消息中间件,交易中间件,对象中间件。
举例:
1 , RMI ( Remote Method Invocations, 远程调用)
2 , Load Balancing( 负载均衡,将访问负荷分散到各个服务器中 )
3 , Transparent Fail-over( 透明的故障切换 )
4 , Clustering( 集群 , 用多个小的服务器代替大型机)
5 , Back-end-Integration( 后端集成,用现有的、新开发的系统如何去集成遗留的系统 )
6 , T ransaction 事务(全局 / 局部)全局事务(分布式事务)局部事务(在同一数据库联 接
内的事务)
7 , Dynamic Redeployment ( 动态重新部署 , 在不停止原系统的情况下,部署新的系统)
8 , System Management( 系统管理 )
9 , Threading( 多线程处理 )
10 , Message-oriented Middleware 面向消息的中间件(异步的调用编程)
11 , Component Life Cycle( 组件的生命周期管理 )
12 , Resource pooling (资源池)
13 , Security (安全)
14 , Caching (缓存)
四、什么是典型的软件三层结构?软件设计为什么要分层?软件分层有什么好处?
答: (1) Presentation layer (表示层)
(1) 表示逻辑(生成界面代码)
(2) 接收请求
(3) 处理业务层抛出的异常
(4) 负责规则验证(数据格式,数据非空等)
(5) 流程控制第 3 页 共 10 页
(2) Service layer (服务层 / 业务层)
(1) 封装业务逻辑处理,并且对外暴露接口
(2) 负责事务,安全等服务
(3) Persistence layer (持久层)
(1) 封装数据访问的逻辑,暴露接口
(2) 提供方便的数据访问的方案(查询语言, API ,映射机制等)
Domain layer (域层)
(1) 业务对象以及业务关系的表示
(2) 处理简单的业务逻辑
(3) 域层的对象可以穿越表示层,业务层,持久层
软件分层结构使得代码维护非常方便,设计明确,各层独立,专注自己擅长的领域。
五、什么是 OOP ? OOP 相对于面向过程编程有哪些优点?
OOP , Object-Oriented Programming ,面向对象编程不同于面向过程编程:
( 1 ) OOP 关注对象和角色,也就是事物的本质
1 ) OOP 把客观世界中的对象抽象成对应的类;
2 )通过类构造实例;
3 )通过依赖、继承、实现等形式建立对象间的通信关系
( 2 ) OOP 易于扩展,增加或改变业务的功能,无需大幅改动改变源代码
( 3 ) OOP 易于建模, OOP 就是软件架构师在计算机高级语言中对客观世界的抽象和
再现,人们可以很好地理解和建立起计算机中的抽象模型
六、谈谈 Overload 和 Override 的区别。
答:
方法的重写 Overriding 和重载 Overloading 是 Java 多态性的不同表现。重写 Overriding
是父类与子类之间多态性的一种表现,重载 Overloading 是一个类中多态性的一种表现。如
果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding) 。 子
类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被 “ 屏蔽 ”
了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类 型 ,
则称为方法的重载 (Overloading) 。 O verloaded 的方法是可以改变返回值的类型。
七、谈谈 HashMap 和 Hashtable 的区别。
答: HashMap 是轻量级的(线程不安全的,效率高的)集合, Hashtable 是重量级的(线
程安全的,效率低的)集合。
都属于 Map 接口的类,实现了将惟一键映射到特定的值上。
HashMap 类没有分类或者排序。它允许一个 null 键和多个 null 值。
Hashtable 类似于 HashMap ,但是不允许 null 键和 null 值。它也比 HashMap 慢 ,
因为它是同步的。
八、请问 abstract class 和 interface 有什么区别?
答:
1) 接口没有任何的实现 , 而抽象类它可以有部分的实现也可以没有 ;
2) 如果需要复用或者共享部分代码 , 应该用抽象类而不是接口 ;
3) 继承无法解决类型的转换问题 , 接口就是为了解决这一问题而产生的 (Java 的单继第 4 页 共 10 页
承是接口产生的根本原因 ) 接口是一种抽象的第三方规范 , 跟对象没什么直接关系。
九、请问软件开发中的设计模式你会使用哪些?
答:我熟悉的设计模式有单例模式, DAO 模式,模板方法,工厂模式,委托代理模式, M VC
模式等。
Singleton 模式主要作用是保证在 Java 应用程序中,一个类 Class 只有一个实例存在。
Singleton 模式一般形式 :
定义一个类,它的构造函数为 private 的,它有一个 static 的 private 的该类变量,在 类
初始化时实例话,通过一个 public 的 getInstance 方法获取对它的引用 , 继而调用其中的方法 。
十、类的核心特性有哪些?
类具有封装性、继承性和多态性。
封装性:
类的封装性为类的成员提供公有、缺省、保护和私有等多级访问权限,目的是隐藏类 中
的私有变量和类中方法的实现细节。
继承性:
类的继承性提供从已存在的类创建新类的机制,继承( inher itance )使一个新类自动拥
有被继承类(父类)的全部成员。
多态性:
类的多态性提供类中方法执行的多样性,多态性有两种表现形式:重载和覆盖。
十一、请问类与对象有什么区别?

类就是某一种事物的一般性的集合体,是相同或相似的各个事物共同特性的一种抽象。
对象
在面向对象概念中,对象( Object )是类的实例( instance )。对象与类的关系就像变量
与数据类型的关系一样。
十二、写出生产者消费者模型的实现(参照 OOA/D 中老师的代码)
十三、用软件工程和 Java 来叙述购物车( shopping cart )系统实现
十四、文件系统的几个类 :FileInputStream 、 FileOutputStream 、 FileReader 、 FileWriter 的区 别
十五、请写出 Java API 中最常用的五个包,并且各举两个类加以说明。 ( 查阅 api)
十六、请问你在 “ 电信运营支撑系统 ” 中遇到了哪些问题?你是怎么解决的?做这个项目 你
最大的收获是什么? ( 自己结合自己的项目 , 做一下总结 , 然后想想怎么去回答 )
十七、请说出几个常用的异常类
答: NullpointException (空指针异常)
ClassNotFoundException (类找不到异常)
ClassCastException (类型转换异常)
IllegalArgumentException (非法参数异常)
ArithmeticException (算术异常)
NumberFormatException (数据格式异常)
IndexOutOfBoundsException (数组下标越界异常)
IllegalStateException (非法语句异常)
十八、什么是进程和线程?两者的区别是什么? ( 经常会被问道 , 查阅操作系统书 , 或问问陈 老
师 )
十九、请简要描述一下你做的 ShoppingCar t 项目。 ( 自己结合自己的项目 , 做一下总结 , 然后 想第 5 页 共 10 页
想怎么去回答 )
二十、请问网络 7 层协议, tcp/ip4 层协议是什么?
二十一、 Java 面向对象的四大特点
二十二、 public, private, protected , default 访问权限(可见性)
答:
public :全局可见
protected :继承体系结构之间可见
default (或不写):同包可见
private :本类可见。
二十三、名词解释
CRM
[Customer Relationship Management, 客户关系管理 ]
ERP
[Enterprise Resource Planning, 企业资源规划 ]
OSS
[Operation Support System, 运营支撑系统 ]
BSS
[Business Support System, 数据定义语言 ]
BOSS
[Business Operation Support System, 数据定义语言 ]
OA
[Office Automatizat ion, 办公自动化 ]
HTTP
OOP
SOA
GUI
DDL
[Data Definit ion Language, 数据定义语言 ]
DML
[Data Manipulat ion Language, 数据操作语言 ]
WYSIWYG
所见即所得 [What You See is What You Get]
CMP
CMT
B2B
C2C
B2C
IDE
DOM
Client/Server
CMM
ORM
MIS
MVC第 6 页 共 10 页
MVC 是 Model - View - Controller 的简写。 "Model" 代表的是应用的业务逻辑(通过
JavaBean , EJB 组件实现), "View" 是应用的表示面(由 JSP 页面产生), "Controller" 是
提供应用的处理过程控制(一般是一个 Servlet ),通过这种设计模型把应用逻辑,处理过 程
和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。
OLE
CORBA
CORBA 标准是公共对象请求代理结构 (Common Object Request Broker Architecture) ,由 对
象管理组织 (Object Management Group ,缩写为 OMG) 标准化。它的组成是接口定义语言
(IDL), 语言绑定 (binding: 也译为联编 ) 和允许应用程序间互操作的协议。 其目的为:
用不同的程序设计语言书写
在不同的进程中运行
为不同的操作系统开发。
UML
UML ,标准建模语言,包含用例图 , 静态图 ( 包括类图、对象图和包图 ), 行为图 , 交互图 ( 顺 序
图 , 合作图 ), 实现图等。
XML
CMMI
JRE
J2EE
J2EE 是 Sun 公司提出的多层 (multi-diered), 分布式 (distributed), 基于组件 (component-base )
的企业级应用模型 (enterpriese application model). 在这样的一个应用系统中,可按照功能划 分
为不同的组件,这些组件又可在不同计算机上,并且处于相应的层次 (tier) 中。所属层次包 括
客户层 (clietn tier) 组件 ,web 层和组件 ,Business 层和组件 , 企业信息系统 (EIS) 层。
JDK
AOP
OO
Container
W3C
JMS
Domain
POJO
JVM
JNDI
JTA
SOAP
[Simple Object Access Protocol ,简单对象访问协议 ]
WSDL
JDO
JDO 是 Java 对象持久化的新的规范,为 Java Data Object 的简称 , 也是一个用于存取某种 数
据仓库中的对象的标准化 API 。 JDO 提供了透明的对象存储,因此对开发人员来说,存储 数
据对象完全不需要额外的代码(如 JDBC API 的使用)。这些繁琐的例行工作已经转移到 J DO
产品提供商身上,使开发人员解脱出来,从而集中时间和精力在业务逻辑上。另外, JDO
很灵活,因为它可以在任何数据底层上运行。 JDBC 只是面向关系数据库( RDBMS)JDO 更
通用,提供到任何数据底层的存储功能,比如关系数据库、文件、 XM L 以及对象数据库第 7 页 共 10 页
( ODBMS )等等,使得应用可移植性更强。
TDD
DAO
IoC
[Inversion of Control, 控制反转 ]
RMI
DNS
[Internet Domain Name System, 因特网域名系统 ]
URL
URI
二十四、数据库连接池的工作机制
二十五、互联网提供哪些服务?
二十六、请写出 JSP 的几个隐含内置对象
答: JSP 中隐含内置对象
名称 类型 注释和范围
request javax.servlet.http.HttpServletRequest request
response javax.servlet.http.HttpServletResponse response
page javax.lang.Object page
Exception java.lang.Throwable page
pageContext javax.servlet.jsp.PageContext page
session javax.servlet.http.HttpSession session
application javax.servlet.ServletContext ServletContext
out javax.servlet.jsp.JspWriter O utput S tream
config javax.servlet.ServletConf ig ServletConf ig
JSP 共有以下 9 种基本内置组件(可与 ASP 的 6 种内部组件相对应):
request 用户端请求,此请求会包含来自 GET/POST 请求的参数
response 网页传回用户端的回应
page JSP 网页本身
exception 针对错误网页,未捕捉的例外
pageContext 网页的属性是在这里管理
session 与请求有关的会话期
application servlet 正在执行的内容
out 用来传送回应的输出
config Servlet 的构架部件
二十七、请你谈谈 SSH 整合
答: SSH :
Struts (表示层) +Spring (业务层) +Hibernate (持久层)
Struts :
Struts 是一个表示层框架,主要作用是界面展示,接收请求,分发请求。
在 MVC 框架中, Struts 属于 VC 层次,负责界面表现,负责 MVC 关系的分发。( Vie w :
沿用 JSP , HTTP , Form , Tag , Resourse ; Controller : ActionServlet , struts-config.xml , A ction )
Hibernate :第 8 页 共 10 页
Hibernate 是一个持久层框架,它只负责与关系数据库的操作。
Spring :
Spring 是一个业务层框架,是一个整合的框架,能够很好地黏合表示层与持久层。
二十八、 应用服务器与 Web Server 的区别
二十九、 Java Servlet API 中 forward() 与 redirect() 的区别
答:
前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址; 后
者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器 的
地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽 量
使用 forward() 方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳
转到一个其它服务器上的资源,则必须使用 sendRedirect() 方法。
三十、写一个简单的 C/S 结构程序, Java 的通信编程,编程题 ( 或问答 ) ,用 JAVA SOCKET
编程,读服务器几个字符,再写入本地显示?
答 :Server 端程序 :
package test;
import java.net.*;
import java.io.*;
public class Server
{
private ServerSocket ss;
private Socket socket;
private BufferedReader in;
private PrintWriter out;
public Server()
{
try
{
ss=new ServerSocket(10000);
while(true)
{
socket = ss.accept();
String RemoteIP = socket.getInetAddress().getHostAddress();
String RemotePort = ":"+socket.getLocalPort();
System.out.println("A client come in!IP:"+RemoteIP+RemotePort);
in = new BufferedReader(new
InputStreamReader(socket.getInputStream()));
String line = in.readLine();
System.out.println("Cleint send is :" + line);
out = new PrintWriter(socket.getOutputStream(),true);
out.println("Your Message Received!");
out.close();
in.close();第 9 页 共 10 页
socket.close();
}
}catch (IOException e)
{
out.println("wrong");
}
}
public static void main(String[] args)
{
new Server();
}
};
Client 端程序 :
package test;
import java.io.*;
import java.net.*;
public class Client
{
Socket socket;
BufferedReader in;
PrintWriter out;
public Client()
{
try
{
System.out.println("Try to Connect to 127.0.0.1:10000");
socket = new Socket("127.0.0.1",10000);
System.out.println("The Server Connected!");
System.out.println("Please enter some Character:");
BufferedReader line = new BufferedReader(new
InputStreamReader(System.in));
out = new PrintWriter(socket.getOutputStream(),true);
out.println(line.readLine());
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
System.out.println(in.readLine());
out.close();
in.close();
socket.close();
}catch(IOException e)
{
out.println("Wrong");
}
}第 10 页 共 10 页
public static void main(String[] args)
{
new Client();
}
};
三十一、请问软件开发中的设计模式你会使用哪些?
答:我熟悉的设计模式有单例模式, DAO 模式,模板方法,工厂模式,委托代理模式, M VC
模式等。
Singleton 模式主要作用是保证在 Java 应用程序中,一个类 Class 只有一个实例存在。
Singleton 模式一般形式 :
定义一个类,它的构造函数为 private 的,它有一个 static 的 private 的该类变量,在 类
初始化时实例话,通过一个 public 的 getInstance 方法获取对它的引用 , 继而调用其中的方法 。
三十二、类的核心特性有哪些?
类具有封装性、继承性和多态性。
封装性:
类的封装性为类的成员提供公有、缺省、保护和私有等多级访问权限,目的是隐藏类 中
的私有变量和类中方法的实现细节。
继承性:
类的继承性提供从已存在的类创建新类的机制,继承( inher itance )使一个新类自动拥
有被继承类(父类)的全部成员。
多态性:
类的多态性提供类中方法执行的多样性,多态性有两种表现形式:重载和覆盖。
三十三、请问类与对象有什么区别?
类 : 类就是某一种事物的一般性的集合体,是相同或相似的各个事物共同特性的一种 抽
象。
对象 : 在面向对象概念中,对象( Object )是类的实例( instance )。对象与类的关系 就

像变量与数据类型的关系一样。

转自:http://www.cnblogs.com/jiayu1016/archive/2012/10/06/2713108.html

JAVA学习33_Java 设计模式面试题相关推荐

  1. 小猿圈Java学习分享2019Java面试题

    虽然金三银四已经过去了但是我门毕业季马上又要来了,每天有很多同学私聊小猿圈老师,想请教一下面试的技巧,老师只能说面试最重要的还是能力,所以小猿圈就给大家整理了一些出现频率比较高的面试题,希望可以帮助到 ...

  2. java学习总结(面试题持续更新)

    1. 面向对象VS面向过程 场景:程序要连接数据库 面向对象:市面上大家都使用的是什么组件,或那个框架完成的,我直接拿来使用.如何使用对象,组织者 面向过程:我该怎么连接数据库,怎么具体实现.如何创建 ...

  3. java学习之设计模式-享元模式

    享元模式 概述 定义: 运用共享技术来有效地支持大量细粒度对象的复用.它通过共享已经存在的对象来大幅度减少需要创建的对象数量.避免大量相似对象的开销,从而提高系统资源的利用率. 结构 享元(Flywe ...

  4. Java学习资源整理(超级全面),java基础面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

  5. 2023最新java学习教程(学习路线+课程大纲+视频教程+面试题+学习工具)

    2023最新java学习教程汇总(学习路线+课程大纲+视频教程+面试题+学习工具) 目录 一.首先要了解什么是JAVA? 二.Java发展及就业前景分析 三.Java学习路线图 四.Java课程大纲 ...

  6. 【2022最新Java面试宝典】—— 设计模式面试题(14道含答案)

    目录 1.什么是设计模式 2.为什么要学习设计模式 3.设计模式分类 4.设计模式的六大原则 5.单例模式 1.什么是单例 2.那些地方用到了单例模式 3.单例优缺点 4.单例模式使用注意事项: 5. ...

  7. java学习笔记_2020全网最全Java面试题,学习笔记!

    深耕IT行业多年,我们发现,对于一个程序员而言,能去到一线互联网公司,会给我们以后的发展带来多大的影响. 很多人想说,这个我也知道,但是进大厂实在是太难了,简历投出去基本石沉大海,更不要说面试邀约了. ...

  8. Java设计模式面试题(一)

    Java设计模式面试题(一) 请列举出在JDK中几个常用的设计模式 单例模式用于Runtime,Calender和其他的一些类中. 工厂模式被用于各种不可变的类,如Boolean.valueOf. 观 ...

  9. Java设计模式面试题及答案(持续更新。。。)

    Java面试题及答案(2022版),每道都是认真筛选出的高频面试题,助力大家能找到满意的工作! Java设计模式面试题及答案 下载链接:全部面试题及答案PDF 1.请列举出在 JDK 中几个常用的设计 ...

最新文章

  1. 用计算机创造的音乐,计算机音乐创作(普通组)
  2. HTML5 表单 中
  3. 记录一次quartus II prime standard 18添加器件库的方法
  4. SQL Server 2008 批量插入数据时报错
  5. 合理的布局,绚丽的样式,谈谈Winform程序的界面设计
  6. 基于Server-Sent Event的简单在线聊天室
  7. 鼻塞用鼻喷剂-调研(成分+刺激性)
  8. 解压android img文件怎么打开,解压压缩android img文件
  9. Redis DeskTop Manager 使用教程
  10. 企业文件服务器(samba)配置案例一
  11. asp.net应用程序无法连接oracle数据库,2020:ASP连接Oracle数据库问题的解决过程
  12. 最优的素数判断代码(Python)是这样写出来的
  13. splay区间翻转(bzoj 3223: Tyvj 1729 文艺平衡树)
  14. vwmare 15“无权输入许可证密钥...”与出现新问题hadoop集群无法启动
  15. 万兆网络传输速度测试_iperf测试万兆网卡tcp性能
  16. mstar的android方案,Mstar Android 方案.pdf
  17. 不同iPhone屏幕尺寸
  18. vivo手机html有吗,vivo手机有哪些系列?区别是什么?
  19. mencoder MPlayer 参数详细
  20. Redis集群的设计与使用

热门文章

  1. 为什么刘彻会成为一代名君?
  2. 基于Android平台实现匿名社交论坛【附项目源码】
  3. 1123: 4102 气球升起来
  4. EL(Expression Language)
  5. CIKB 2017大看点:跨界四合一,美的重新定义水槽式洗碗机
  6. SAP BAPI 入门教程
  7. jpa之jpql查询
  8. 值得考虑的 9 个开源 ERP 系统
  9. Selenium自动化测试:8种元素定位+unittest框架设计
  10. 【抬杠涨能耐,实践出真知】关于某个技术问题争吵