1.collection
一.分两部分:
一部分是一个一个存(称collection)。
另一部分是一对一对存(称Map)。
集合主要有3种重要的类型:(集合只能存引用类型)
List :是一个有序集合,可以放重复的数据。
Set:是一个无序集合,不允许放重复的数据
Map:是一个无序集合,集合中包含一个键对象,一个值对象,键对象不允许重复。值可以重复
(1)ArrayList和Vector的区别?
这两个类都实现了List接口(List接口继承了Collection接口),他们都是有序集合,即存储在这两个集合中的元素的位置都是有顺序的,相当于一种动态的数组,我们以后可以按位置索引号取出某个元素,,并且其中的数据是允许重复的,这是HashSet之类的集合的最大不同处。
1)同步性:Vector是线程安全的,也就是说是它的方法之间是线程同步的,而ArrayList是线程序不安全的,它的方法之间是线程不同步的。如果只有一个线程会访问到集合,那最好是使用ArrayList,因为它不考虑线程安全,效率会高些;如果有多个线程会访问到集合,那最好是使用Vector,因为不需要我们自己再去考虑和编写线程安全的代码。
2)数据增长:ArrayList与Vector都有一个初始的容量大小,当存储进它们里面的元素的个数超过了容量时,就需要增加ArrayList与Vector的存储空间,每次要增加存储空间时,不是只增加一个存储单元,而是增加多个存储单元,每次增加的存储单元的个数在内存空间利用与程序效率之间要取得一定的平衡。Vector默认增长为原来两倍,而ArrayList的增长策略在文档中没有明确规定(从源代码看到的是增长为原来的1.5倍)。ArrayList与Vector都可以设置初始的空间大小,Vector还可以设置增长的空间大小,而ArrayList没有提供设置增长空间的方法。
总结:即Vector增长原来的一倍,ArrayList增加原来的0.5倍。
(2)HashMap和Hashtable的区别
HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,在只有一个线程访问的情况下,效率要高于Hashtable。
一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现
二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的
三.值:只有HashMap可以让你将空值作为一个表的条目的key或value
2.栈和堆
heap和stack有什么区别。
java的内存分为两类,一类是栈内存,一类是堆内存。栈内存是指程序进入一个方法时,会为这个方法单独分配一块私属存储空间,用于存储这个方法内部的局部变量,当这个方法结束时,分配给这个方法的栈会释放,这个栈中的变量也将随之释放。
堆是与栈作用不同的内存,一般用于存放不放在当前方法栈中的那些数据,例如,使用new创建的对象都放在堆里,所以,它不会随方法的结束而消失。方法中的局部变量使用final修饰后,放在堆中,而不是栈中。
(3)JSP
jsp有哪些内置对象?作用分别是什么? 分别有什么方法?
JSP共有以下9个内置的对象:
request 用户端请求,此请求会包含来自GET/POST请求的参数
response 网页传回用户端的回应
pageContext 网页的属性是在这里管理
session 与请求有关的会话期
application servlet 正在执行的内容
out 用来传送回应的输出
config servlet的构架部件
page JSP网页本身
exception 针对错误网页,未捕捉的例外
request表示HttpServletRequest对象。它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie, header, 和session数据的有用的方法。
response表示HttpServletResponse对象,并提供了几个用于设置送回 浏览器的响应的方法(如cookies,头信息等)
out对象是javax.jsp.JspWriter的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。
pageContext表示一个javax.servlet.jsp.PageContext对象。它是用于方便存取各种范围的名字空间、servlet相关的对象的API,并且包装了通用的servlet相关功能的方法。
session表示一个请求的javax.servlet.http.HttpSession对象。Session可以存贮用户的状态信息
applicaton 表示一个javax.servle.ServletContext对象。这有助于查找有关servlet引擎和servlet环境的信息
config表示一个javax.servlet.ServletConfig对象。该对象用于存取servlet实例的初始化参数。
page表示从该页面产生的一个servlet实例
jsp有哪些动作?作用分别是什么?
答:JSP共有以下6种基本动作
jsp:include:在页面被请求的时候引入一个文件。
jsp:useBean:寻找或者实例化一个JavaBean。
jsp:setProperty:设置JavaBean的属性。
jsp:getProperty:输出某个JavaBean的属性。
jsp:forward:把请求转到一个新的页面。
jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记
JSP中动态INCLUDE与静态INCLUDE的区别?
它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数 静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面 <%@ include file=included.htm %>
两种跳转方式分别是什么?有什么区别?
(下面的回答严重错误,应该是想问forward和sendRedirect 的区别,毕竟出题的人不是专业搞文字艺术的人,可能表达能力并不见得很强,用词不一定精准,加之其自身的技术面也可能存在一些问题,不一定真正将他的意思表达清楚了,严格意思上来讲,一些题目可能根本就无人能答,所以,答题时要掌握主动,只要把自己知道的表达清楚就够了,而不要去推敲原始题目的具体含义是什么,不要一味想着是在答题)答:有两种,分别为:前者页面不会转向include所指的页面,只是显示该页的结果,主页面还是原来的页面。执行完后还会回来,相当于函数调用。并且可以带参数.后者完全转向新页面,不会再回来。相当于go to 语句。
JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?
JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达。JSP编译后是"类servlet"。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。
forward 和redirect的区别
(4)Struts2
谈谈你对Struts2的理解
服务器启动:Tomcat启动- 加载自身web.xml---加载所有项目的web.xml通过在项目的web.xml中引入过滤器,
-Struts的核心功能的初始化,通过过滤器完成
1. 加载项目web.xml
2. 创建Struts核心过滤器对象, 执行filter init()
struts-default.xml, 核心功能的初始化
struts-plugin.xml, struts相关插件
struts.xml 用户编写的配置文件
访问:
3. 用户访问Action, 服务器根据访问路径名称,找对应的aciton配置, 创建action对象
4. 执行默认拦截器栈中定义的18个拦截器
5. 执行action的业务处理方法
说说struts1与struts2的区别
Struts1最早的一种基于mvc模式的框架;
Struts2 是在Struts1的基础上,融合了xwork的功能;
也可以说,Struts2 = struts1 + xwork
(5)Hibernate
1)hibernate中的update()和saveOrUpdate()的区别,session的load()和get()的区别。
2)iBatis与Hibernate有什么不同?
3)介绍一下Hibernate的二级缓存?
2)iBatis与Hibernate有什么不同?
相同点:屏蔽jdbc api的底层访问细节,使用我们不用与jdbc api打交道,就可以访问数据。
jdbc api编程流程固定,还将sql语句与java代码混杂在了一起,经常需要拼凑sql语句,细节很繁琐。
ibatis的好处:屏蔽jdbc api的底层访问细节;将sql语句与java代码进行分离;提供了将结果集自动封装称为实体对象和对象的集合的功能,queryForList返回对象集合,用queryForObject返回单个对象;提供了自动将实体对象的属性传递给sql语句的参数。
Hibernate是一个全自动的orm映射工具,它可以自动生成sql语句,ibatis需要我们自己在xml配置文件中写sql语句,hibernate要比ibatis功能负责和强大很多。因为hibernate自动生成sql语句,我们无法控制该语句,我们就无法去写特定的高效率的sql。对于一些不太复杂的sql查询,hibernate可以很好帮我们完成,但是,对于特别复杂的查询,hibernate就很难适应了,这时候用ibatis就是不错的选择,因为ibatis还是由我们自己写sql语句。
介绍一下Hibernate的二级缓存?
按照以下思路来回答:(1)首先说清楚什么是缓存,(2)再说有了hibernate的Session就是一级缓存,即有了一级缓存,为什么还要有二级缓存,(3)最后再说如何配置Hibernate的二级缓存。
(1)缓存就是把以前从数据库中查询出来和使用过的对象保存在内存中(一个数据结构中),这个数据结构通常是或类似Hashmap,当以后要使用某个对象时,先查询缓存中是否有这个对象,如果有则使用缓存中的对象,如果没有则去查询数据库,并将查询出来的对象保存在缓存中,以便下次使用
Hibernate的Session就是一种缓存,我们通常将之称为Hibernate的一级缓存,当想使用session从数据库中查询出一个对象时,Session也是先从自己内部查看是否存在这个对象,存在则直接返回,不存在才去访问数据库,并将查询的结果保存在自己内部。由于Session代表一次会话过程,一个Session与一个数据库连接相关连,所以Session最好不要长时间保持打开,通常仅用于一个事务当中,在事务结束时就应关闭。并且Session是线程不安全的,被多个线程共享时容易出现问题。通常只有那种全局意义上的缓存才是真正的缓存应用,才有较大的缓存价值,因此,Hibernate的Session这一级缓存的缓存作用并不明显,应用价值不大。Hibernate的二级缓存就是要为Hibernate配置一种全局缓存,让多个线程和多个事务都可以共享这个缓存。我们希望的是一个人使用过,其他人也可以使用,session没有这种效果。
(3)二级缓存是独立于Hibernate的软件部件,属于第三方的产品,多个厂商和组织都提供有缓存产品,例如,EHCache和OSCache等等。在Hibernate中使用二级缓存,首先就要在hibernate.cfg.xml配置文件中配置使用哪个厂家的缓存产品,接着需要配置该缓存产品自己的配置文件,最后要配置Hibernate中的哪些实体对象要纳入到二级缓存的管理中。明白了二级缓存原理和有了这个思路后,很容易配置起Hibernate的二级缓存。扩展知识:一个SessionFactory可以关联一个二级缓存,也即一个二级缓存只能负责缓存一个数据库中的数据,当使用Hibernate 的二级缓存后,注意不要有其他的应用或SessionFactory来更改当前数据库中的数据,这样缓存的数据就会与数据库中的实际数据不一致
6)Spring
什么是spring的IOC AOP
Servlet
1.servlet的执行顺序
servlet分两部分,访问servlet配置和servlet-mapping配置,
到本地的hosts文件中查找是否存在该域名对应的IP地址
127.0.0.1,8080 :找到tomcat服务器,在tomcat的webapps目录下找 day10的目录,访问/first 资源名称,tomcat服务器启动时,首先加载webapps中的每个web应用的web.xml配置文件。在day10的web.xml中查找是否有匹配的url-pattern的内容(用/first去匹配),如果找到匹配的url-pattern,则使用当前servlet-name的名称到web.xml文件中查询是否相同名称的servlet配置,如果找到,则取出对应的servlet配置信息中的servlet-class内容:(字符串: bao.a_servlet.FirstServlet),通过反射:a)构造FirstServlet的对象b)然后调用FirstServlet里面的方法
2.Servlet重要的四个生命周期方法:
构造方法: 创建servlet对象的时候调用。默认情况下,第一次访问servlet的时候创建servlet对象 只调用1次。证明servlet对象在tomcat是单实例的。
init方法: 创建完servlet对象的时候调用。只调用1次。
service方法: 每次发出请求时调用。调用n次。
destroy方法: 销毁servlet对象的时候调用。停止服务器或者重新部署web应用时销毁servlet对象。只调用1次。
3.ServletConfig对象
ServletConfig对象: 主要是用于加载servlet的初始化参数。在一个web应用可以存在多个ServletConfig对象(一个Servlet对应一个ServletConfig对象)
创建时机: 在创建完servlet对象之后,在调用init方法之前创建。
得到对象: 直接从有参数的init方法中得到!!!
4. ServletContext对象
ServletContext对象 ,叫做Servlet的上下文对象。表示一个当前的web应用环境。一个web应用中只有一 个ServletContext对象
创建时机:加载web应用时创建ServletContext对象。
得到对象: 从ServletConfig对象的getServletContext方法得到
5.域对象:作用是用于保存数据,获取数据。可以在不同的动态资源之间共享数据
参数传递有两种方法
方案1: 可以通过传递参数的形式,共享数据。局限:只能传递字符串类型。
方案2: 可以使用域对象共享数据,好处:可以共享任何类型的数据!!!!!
ServletContext域对象:作用范围在整个web应用中有效!!!
所有域对象:
HttpServletRequet 域对象
ServletContext域对象
HttpSession 域对象
PageContext域对象
6.转发和重定向
RequestDispatcher getRequestDispatcher(java.lang.String path)
1)转发
a)地址栏不会改变
b)转发只能转发到当前web应用内的资源
c)可以在转发过程中,可以把数据保存到request域对象中
2)重定向
a)地址栏会改变,变成重定向到地址。
b)重定向可以跳转到当前web应用,或其他web应用,甚至是外部域名网站。
c)不能再重定向的过程,把数据保存到request中。
数据库
1、数据库三范式是什么?
2.JDBC:使用java代码(程序)发送sql语句的技术,就是jdbc技术!
使用JDBC连接数据库前提:数据库的IP地址:"jdbc:mysql://localhost:3306/day17"
// jdbc协议:数据库子协议:主机:端口/连接的数据库 ,数据库用户名,密码
使用JDBC连接数据库的第一种方法:
第一种方法
1.创建驱动程序类对象
2设置用户名和密码
3.连接数据库,返回连接对象
第二种方法
使用驱动管理器类连接数据库(注册了两次,没必要)
Driver driver = new com.mysql.jdbc.Driver();
/1.注册驱动程序(可以注册多个驱动程序)
DriverManager.registerDriver(driver);
/2.连接到具体的数据库
Connection conn = DriverManager.getConnection(url, user, password);
(推荐使用第二种)
JDBC接口核心的API
|- Connection接口: 表示java程序和数据库的连接对象。
|- Statement createStatement() : 创建Statement对象
|- PreparedStatement prepareStatement(String sql) 创建PreparedStatement对象
|- CallableStatement prepareCall(String sql) 创建CallableStatement对象
|- Statement接口: 用于执行静态的sql语句
|- int executeUpdate(String sql) : 执行静态的更新sql语句(DDL,DML)
|- ResultSet executeQuery(String sql) :执行的静态的查询sql语句(DQL)
|-PreparedStatement接口:用于执行预编译sql语句
|- int executeUpdate() : 执行预编译的更新sql语句(DDL,DML)
|-ResultSet executeQuery() : 执行预编译的查询sql语句(DQL)
|-CallableStatement接口:用于执行存储过程的sql语句(call xxx)
|-ResultSet executeQuery() : 调用存储过程的方法
//7.关闭连接(顺序:后打开的先关闭)if(stmt!=null)try {stmt.close();} catch (SQLException,再关 conn) {
3.PreparedStatement vs Statment
String sql = "UPDATE student SET NAME=? WHERE id=?"; //?表示一个参数的占位符(预编译sql语句有占位符号)
1)语法不同:PreparedStatement可以使用预编译的sql,而Statment只能使用静态的sql
2)效率不同: PreparedStatement可以使用sql缓存区,效率比Statment高
3)安全性不同: PreparedStatement可以有效防止sql注入,而Statment不能防止sql注入。
推荐使用PreparedStatement
JDBC优化:
BeanUtils组件:程序中对javabean的操作很频繁, 所以apache提供了一套开源的api,方便对javabean的操作!即BeanUtils组件。
BeanUtils组件, 作用是简化javabean的操作!
方法1: 对象属性的拷贝
BeanUtils.copyProperty(admin, "userName", "jack");
BeanUtils.setProperty(admin, "age", 18);
方法2: 对象的拷贝
BeanUtils.copyProperties(newAdmin, admin);
方法3: map数据拷贝到javabean中
【注意:map中的key要与javabean的属性名称一致】
BeanUtils.populate(adminMap, map);
元数据 :
在jdbc中获取数据库的定义,例如:数据库、表、列的定义信息。就用到元数据。
在jdbc中可以使用: 数据库元数据、参数元数据、结果集元数据
(元数据定义相关api, ..MetaData)
DatabaseMetaData metaData = conn.getMetaData();// alt + shift + L 快速获取方法返回值
System.out.println(metaData.getUserName());
可以简化dao层,具体看代码
DbUtils组件:简化jdbc操作
连接池
涉及频繁的连接的打开、关闭,影响程序的运行效率!预先创建一组连接,有的时候每次取出一个; 用完后,放回;
学习连接池:
1.自定义一个连接池
2.学习优秀的连接池组件DBCP C3P0
设计模式
代理:
如果对某个接口中的某个指定的方法的功能进行扩展,而不想实现接口里所有方法,可以使用(动态)代理模式!
Java中代理模式:静态/动态/Cglib代理(spring)
使用动态代理,可以监测接口中方法的执行!
如何对Connection对象,生成一个代理对象:
|--Proxy
static Object newProxyInstance(
ClassLoader loader, 当前使用的类加载器
Class[] interfaces, 目标对象(Connection)实现的接口类型
InvocationHandler h 事件处理器:当执行上面接口中的方法的时候,就会自动触发事件处理器代码,把当前执行的方法(method)作为参数传入。
),
写一个Singleton出来。
第一种:饱汉模式
public class SingleTon {
private SingleTon(){
}
//实例化放在静态代码块里可提高程序的执行效率,但也可能更占用空间
private final static SingleTon instance = new SingleTon();
public static SingleTon getInstance(){
return instance;
}
}
第二种:饥汉模式
public class SingleTon {
private SingleTon(){}
private static instance = null;//new SingleTon();
public static synchronized SingleTon getInstance(){
if(instance == null)
instance = new SingleTon();
return instance;
}
}
基础
异常
多线程
网络
HTML
html的标签作用:用于描述一个网页的结构的,如果要操作数据的样式,是要通过标签的熟悉操作的.
1.常用标签
~表示文章大标题,而且字体依次渐小,对齐。
文章是是段落的,段落用
标签,段落一般缩进两个空格, 一般这么干  
水的化学式:H2O 下标签
2的16次方:216 上标签
:水平分割线
:换行
一首诗 原样标签,保留编写的时候的空格和换行符号(注意:使用这个标签的空格要么用table键要么用空格键要一致,否则出现错误,这里建议用空格)
有序的列表标签:ol li
烤鱼
火锅
无序的的列表标签:ul li 前面默认是小圆点,也可以改type=“square”
项目标签dl dt dd
技术总监
码农// dd是可以缩进一个table键的
人事总监
妹纸1
div标签的内容会独立占一行。
CSS+Div布局方式,Div才拥有,行内标签也才有用
2.超链接
超链接标签
a标签常用的属性
href:用于指定链接的资源,
target:设置打开资源的目标。它又有两个常用属性:_Blank 在独立的窗口打开新资源,_self 在当前窗口打开新资源。
file:file协议(文件协议)这种协议主要用于搜索本地机器的资源文件
格式:file:\\\f:\美女\1.jpg
表格标签
表格
行
单元格
表头 默认的样式是居中,加粗
表格的标题
表格常用属性:、
border设置表格的边框
width:设置表格的宽度
height:设置表格的高度
3.框架标签
framSet:一个frameSet可以把一个页面切割成多份。只能按照行或者列切割
frame 不能被切割的,frame是位于frameSet中. src链接的那个页面
注意:frameSet标签不能用于body标签体内容,有body不需要frameset,有body就不需要frameset
4.实体标签
为什么要学实体标签:因为< >空格等一些符号在html页面中是有特殊含义,这些字体如果需要在页面中显示,这时候就应该使用实体标签。
空格。 ;大于号 <; 大于号 >
你可能感兴趣的:(java初级面试总结)
Binder相关面试总结(四):一次Binder通信的基本流程是什么样?
bug樱樱
概述AIDL(AndroidInterfaceDefinitionLanguage)是一种接口定义语言,用于生成可以在Android设备上两个进程之间进行PC的代码。如果在一个进程中(例如Activity)要调用另一个进程中(例如Service)对象的操作,就可以使用AIDL生成可序列化的参数,来完成进程间通信,也就是说,为了简化应用层进行IPC操作,Android提供了AIDL这门语言,在学习A
2024 web 前端面试总结(春招)
2401_84413092
程序员 前端 面试 职场和发展
关于基础我一直认为基础都是最重要的,在掘金上面加了个前端的小册群,群里面大多数应该是工作了的人,前两天有人在群里问了下面这道题varvalue=1varfoo={value:2,bar:function(){returnthis.value}}console.log((foo.bar)())然后有的说自执行函数,还有人说为什么不是undefined,为什么不是1,其实就是个很简单的隐式绑定。怎么说
JAVA虚拟机面试总结
会非的杨
java 面试 开发语言
JAVA虚拟机面试总结JVM的内存模型介绍一下**程序计数器:**JVM里的程序计数器(ProgramCounterRegister)是一块较小的内存空间,其作用是存储当前线程正在执行的字节码指令地址。它是线程私有的,每个线程都有独立的程序计数器,生命周期与线程相同。若线程执行的是Java方法,计数器记录的是正在执行的字节码指令地址;若执行的是本地(Native)方法,计数器值为undefined
2025秋招优秀项目推荐
微凉的衣柜
人工智能 深度学习 算法 gpt
01.多个优异的数据结构与算法项目推荐良心推荐hello-algo包含多个通用的代码框架,一个框架完成多道题目,更详细请查阅labuladong02.大模型岗位面试总结:共24家,9个offer大模型岗位面试总结:共24家,9个offer03.视觉检测分割一切源码及在线DemoGrounded-Segment-Anything项目源码
Spring面试总结,基于小林coding+个人总结
会非的杨
spring 面试 java
Spring面试总结讲一下你对spring的理解Spring是一个轻量级的Java开发框架,它通过控制反转(IoC)和面向切面编程(AOP)等核心技术,为企业级应用提供了全面的解决方案。它整合了事务管理、Web开发、数据访问等功能模块,具有模块化、非侵入性等特点。核心特性:控制反转与依赖注入:IoC,将对象的创建和依赖关系的管理从代码中移除,转由Spring容器负责。DI:IoC的具体实现方式,通
Java实习生第一次面试总结
摇一摇小肉包的JAVA笔记
java 面试 开发语言
这是人生第一次面试,有点小紧张,但是看见面试官后觉得还好。有些问题没有回答上来,下面总结这次面试,面试官提的一些问题,在接下来的时间里应该要着重去了解java一些底层的东西。以及开发所需要的东西。java学习在于广在于深1:redis(重中之重)如何处理数据,有什么使用特点2:SpringBoot框架的问题(SpringBoot如何实现自动装配)和Spring框架的区别3:高批量数据处理功能的实现
8.每日LeetCode-笔试题,交替打印数字和字母
os-lee
数据结构和算法 leetcode 算法
代码地址:interview-go:Go高级面试总结问题描述交替打印数字和字母使用两个goroutine交替打印序列,一个goroutine打印数字,另外一个goroutine打印字母,最终效果如下:12AB34CD56EF78GH910IJ1112KL1314MN1516OP1718QR1920ST2122UV2324WX2526YZ2728解题思路问题很简单,使用channel来控制打印的进度
java面试总结-20250610
川夜施密特
java 面试 开发语言
rediszset查询和插入的时间复杂度?限流的手段有哪些?什么情况会考虑分库分表,如何设计?如何预防和避免死锁发生?cpu的资源达到100%,如何排查?kafka架构设计原理?算法题数组的最大子数组和redis数据类型低层实现和应用场景?rpc框架组成部分?算法题数组旋转java8hashmap底层结构?链表和红黑树的时间复杂度?负载因子的作用?多线程为什么不直接使用runnable中的run而
java面试总结-20250605
川夜施密特
java 面试 算法
synchronized和lockAPI的区别区分点synchronizedlockapi来源java内置关键字java.util.concurrent包获取锁时是否可以响应中断不能响应中断可以,使用lock.lockInterruptibly()支持的锁类型非公平锁,有锁升级的过程(无锁->偏向锁->轻量级锁->重量级锁)支持非公平锁和公平锁(ReentrantLocklock=newReent
国际物流杰信项目总结与面试
csdn_AF
SSM杰信商务平台项目 项目杂记 项目总结 面试
国际物流杰信项目面试总结1.面试时如何讲解项目?讲出三个层次,1)讲项目的背景,讲特色的业务2)讲业务的复杂度3)从业务角度牵扯出技术亮点每一层都要挖陷阱,让面试官问问题。从面试题中找出十个重点,把它们自己总结一段话,300~500字。综合所学的所有知识2.业务a)购销合同杰信和生产厂家要签订一个购销合同,购销合同包括三部分内容,包括合同主信息和多个货物信息和多个附件信息。合同和货物是一对多,货物
上海华为OD--JAVA面试总结
Tsinghua University
面试经验分享 java
我是2021年6月21日收到华为OD的机试邀请,华为OD机试第一次做很难,我在2019年的时候第一次接触这个机试,三道题一题不会,要想通过,前期不去LeetCode上刷题那是不可能的,好在这次面试有个华为的人事全程对接,可能是od那边真的很缺人,他们急迫想招人进去,然后给了一份常考机试题的答案给我了,一百多道,我大概花了5天时间,全部敲了一遍,机考链接给下来,有7天有效期,如果准备准备不充分的千万
java初级项目实战(5)
ÅÈÌÇ
java初级实战练习(二) java spring mybatis maven idea spring boot
简介:我们这一节课主要实现了双端查询功能,以及如何分页查询等。文章链接如下:Wiki预告下节课内容:1.完善异常类(产品不存在异常等)2.我们发现我们之前用的密码存储在数据库都是明文存储,那不太行,我们下节课把他改成加密存储(加密存储)3..我们发现,我们的功能都是零散的功能,并没有完全实现商家添加产品或者删除产品的功能(我们这些功能的实现,都必须要先传入商家账户后,才能进行修改,我们优化过后,就
Android第十五次面试总结(第三方组件和adb命令)
每次的天空
android
Android第三方组件转为系统组件核心流程这通常是在进行Android系统定制(如ROM开发、固件制作)时完成,目的是让第三方应用拥有更高的权限和系统身份。主要过程如下:核心准备:签名!赋予系统身份核心问题:Android系统如何信任一个应用是自己人?答案是通过签名。第三方签名:普通应用使用的是开发者自己的证书签名。系统签名:系统组件必须使用与Android操作系统本身相同的特定签名密钥进行签名
Android第十三次面试总结基础
每次的天空
Android基础专栏 android 面试 职场和发展
Activity生命周期和四大启动模式详解一、Activity生命周期Activity的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机:onCreate()调用时机:Activity首次创建时调用。作用:初始化布局(setContentView)、绑定数据、创建后台线程等。注意:在此方法中应避免耗时操作。onStart()调用时机:Activity
2025年6月3日面试总结
一切顺势而行
java
1.面试官问一台机器内存或者磁盘占用99%再点一下就挂了,个人刚开始反应内存不足加内存,磁盘不足加磁盘,还有啥办法,有些时候没干过的事一定要大胆,敲命令都敲不成,只能换磁盘了和加内存了,要么停机,top-o%MEM#按内存排序进程,记录高占用PIDtop-o%MEM-b-n1|head-12|tail-n+7|awk'{print$NF""$1}'free-h(base)[root@elastic
java初级面试精典SQL语句:测测你会多少?
挑战者666888
mysql 《Java面试精选》 java 面试 sql
系列文章目录1.MySQL用户权限管理:拿捏数据安全的“数字锁”,小心权限“翻车现场”!2.mysql的事物隔离级别详解3.Mysql5.7根据frm和ibd文件恢复数据目录系列文章目录[1.MySQL用户权限管理:拿捏数据安全的“数字锁”,小心权限“翻车现场”!](https://blog.csdn.net/qq_35365160/article/details/148293973?spm=10
计算机网络--面试总结四(HTTP、RPC、WebSocket、SSE)
阿东日志
计算机网络 面试 http rpc websocket
当前:计算机网络--面试总结四(HTTP、RPC、WebSocket、SSE)计算机网络--面试知识总结一计算机网络-----面试知识总结二计算机网络--面试总结三(Http与Https)知识积累之ThreadLocal---InheritableThreadLocal总结HTTP和RPCRPC的特点:1、调用方便:调用远程服务就像调用本地方法一样2、性能较好:RPC通常使用二进制进行传输,这样可
java初级开发(个人仅供参考)(四)
ÅÈÌÇ
java mybatis postman idea spring boot
简介:一和二分别简单介绍了开发流程,第三个实现简单的登录和注册功能,那第四节,就是完善登录功能以及添加更新功能了(预告一下,第五节就是最后一节了,添加查询功能和删除功能)(我尽量每一步都说明白,如果觉得还是不理解,也可以去查阅其他资料。所有后续都是在飞书文档链接中看到)(如果觉得有用,那你的点赞和关注就是我更新的最大动力)Wiki
【备忘】javaEE系统架构师学习路线之基础篇
DoveFeng
05 java 基础
这是一套Java菜鸟到大牛学习路线培训教程,由本站工作了10年的资深Java架构师整理。主要分5个阶段:Java程序员->Java初级软件工程师->Java中级软件工程师->Java高级软件工程师->Java系统架构师,从头学到尾即可成为大神!成为架构师是爱好编程的程序员的最终目标!第1阶段(Java程序员)-Java语言基础-101JavaSE-01-常见Dos命令、Java历史、Java跨平台
JavaEE系统架构师学习路线之基础篇
qq_42709274
java
大纲:第1阶段(Java程序员)-Java语言基础第2阶段(Java初级软件工程师)-JSP、Servlet、HTML、CSS、JS、Bootstrap、XML、AJAX、MySQL、SQLServer、Oracle第3阶段(Java中级软件工程师)-Struts2、Spring、Hibernate、SpringMVC、Mybatis、Shiro、JVM第4阶段(Java高级软件工程师)-WebS
Java知识体系最强总结(2021版),深入理解linux内核架构评价
m0_64384202
程序员 面试 java 后端
CentOS8推荐书籍读书笔记云计算搜索引擎权限管理区块链Java面试总结Java面试总结汇总,整理了包括Java基础知识,集合容器,并发编程,JVM,常用开源框架Spring,MyBatis,数据库,中间件等,包含了作为一个Java工程师在面试中需要用到或者可能用到的绝大部分知识。欢迎大家阅读,本人见识有限,写的博客难免有错误或者疏忽的地方,还望各位大佬指点,在此表示感激不尽。文章持续更新中…|
Android第三次面试总结之Java篇补充
每次的天空
Java基础专栏 android 面试 java
一、Array与ArrayList在Android中的深度对比与优化1.内存模型与性能差异的本质原因数组(Array)的内存布局基本类型数组(如int[])在Java中是连续的原始数据块,直接存储值,无额外对象开销;对象数组(如Object[])存储引用,每个元素占4/8字节(取决于是否开启指针压缩)。Android优势:在ART虚拟机中,数组的内存分配由JVM直接管理,无需经过垃圾回收器(GC)
美团2024年春招第一场笔试【技术】第五题:小美的区间删除
2301_78234743
java
一个普通人的暑期实习面试总结海尔-GEDP全球工程师【通用版】如何通过转正答辩(述职)海尔嵌入式25暑期实习的心态变化&拥抱变化25暑期实习的心态变化&拥抱变化字节超高实习转正率真不是吹的,我的秋招还没开始就结束啦美团实习经历分享入职体检还得体检这?关于山东企业的一点理解#牛客福利打卡(51895)##如何写#牛客福利打卡##如何写一份好简历#请教各位大神。没有实习经历,简历还可以写点什么啊?运营
Android第六次面试总结之Java设计模式篇(一)
每次的天空
Java设计模式专栏 android 面试 java
一、单例模式在Android面试中的核心考点1.Android中如何安全实现单例?需注意哪些坑?(字节跳动、美团面试真题)解答:Android中实现单例需重点关注Context泄漏、线程安全和反射/序列化攻击。推荐实现:静态内部类(线程安全+避免内存泄漏)publicclassAppManager{privateContextcontext;//静态内部类持有实例(类加载时初始化,线程安全)pri
深信服python 面试总结
Michaelzhangs
面试 python
无意投了,前几天通知电话面试,一面对于基本知识点要掌握,扎实,问的很细,直到你答不出来为止。凭回忆记录1·生成器和迭代器说说2·线程和协程。怎么用的,这里问的很多,包括占用资源为啥线程比协程大等3·闭包。衍生到装饰器4·tcp和udp,为啥3次握手,4次挥手等5.随机报了个http端口号问是什么情况-6·基本排序知道哪几种,时间复杂度,快排怎么实现7.initnew方法说说8·项目的介绍基本上想到
Python面试总结
一个Potato
python 开发语言
hello,大家好,我是potato,我总结一下最近的面试遇到的问题~1.Python开发(软通动力)自我介绍主要问了项目(YOLOv11)项目遇到的难点和解决方法is,==列表和元组的区别Python多线程有什么问题?Python的GIL了解吗?深拷贝,浅拷贝的区别?redis中间件是否了解?ai-agent有多了解?MySQL事务隔离级别有几种?where和having的区别transform
【题库发布】2025/新华三/H3CIE面试资料合集
Real资料局
面试 网络安全 网络 运维
2025/新华三/H3CIE面试资料合集新华三H3CIE-面试(路由交换)文件内容包含:白皮书-路由白皮书-园区白皮书-安全与优化真题1(2024.3.9)真题2(2024.3.10)真题3(2024.5.18)真题4(2024.12.23)H3CIE面试总结1H3CIE面试总结2H3CIE综合面试指导计算机网络面试资料H3CIE面试真题解析H3CIE面试问题整理1H3CIE面试问题整理2H3CI
【计算机网络】高频计网面试总结
{⌐■_■}
计算机网络 面试 职场和发展
TCP和UDP的区别tcp:保证数据可靠,(检验和、序列号去重、确认应答、滑动窗口、超时重传、拥塞控制、流量控制)面向连接的,建立连接需要三次握手,断开要四次挥手传输单位是字节流头部20字节****以上,开销大,传输效率较低应用场景:聊天,文件传输,邮件,浏览网页udp:数据不可靠,可能丢包、乱序,但是延迟更低无连接,发送数据不需要建立连接传输单位是数据包头部仅8字节,传输效率高应用场景:直播,语
2024金9银10,软件测试最全面试攻略,吃透 16 个技术栈Offer拿到手软
软件测试慧姐
软件测试 面试 面试 职场和发展 软件测试 功能测试
前言小编分享的这份软件测试面试总结包含了测试理论、Linux基础、MySQL基础、Web测试、接口测试、App测试、管理工具、Python基础、Selenium相关、性能测试、LordRunner相关等16个专题技术点,都是小编在各个大厂总结出来的面试真题,已经有很多粉丝靠这份PDF拿下众多大厂的offer,今天在这里总结分享给到大家!小编这篇分享篇幅可能有点长,观看的朋友可以先了解一下目录在文末
Android面试总结之Glide源码级理解
每次的天空
Android学习知识总结 glide
当你的图片列表在低端机上白屏3秒、高端机因内存浪费导致FPS腰斩时,根源往往藏在Glide的内存分配僵化、磁盘混存、网络加载无优先级三大致命缺陷中。本文从阿里P8级缓存改造方案出发,结合Glide源码实现动态内存扩容、磁盘冷热分区、智能预加载等黑科技,彻底解决万级图片加载场景下的性能灾难一、Glide默认缓存架构的四大缺陷(源码级剖析)1.内存分配僵化:固定比例引发高低端机两难默认内存缓存为APP
多线程编程之卫生间
周凡杨
java 并发 卫生间 线程 厕所
如大家所知,火车上车厢的卫生间很小,每次只能容纳一个人,一个车厢只有一个卫生间,这个卫生间会被多个人同时使用,在实际使用时,当一个人进入卫生间时则会把卫生间锁上,等出来时打开门,下一个人进去把门锁上,如果有一个人在卫生间内部则别人的人发现门是锁的则只能在外面等待。问题分析:首先问题中有两个实体,一个是人,一个是厕所,所以设计程序时就可以设计两个类。人是多数的,厕所只有一个(暂且模拟的是一个车厢)。
How to Install GUI to Centos Minimal
sunjing
linux Install Desktop GUI
http://www.namhuy.net/475/how-to-install-gui-to-centos-minimal.html
I have centos 6.3 minimal running as web server. I’m looking to install gui to my server to vnc to my server. You can insta
Shell 函数
daizj
shell 函数
Shell 函数
linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。
shell中函数的定义格式如下:
[function] funname [()]{
action;
[return int;]
}
说明:
1、可以带function fun() 定义,也可以直接fun() 定义,不带任何参数。
2、参数返回
Linux服务器新手操作之一
周凡杨
Linux 简单 操作
1.whoami
当一个用户登录Linux系统之后,也许他想知道自己是发哪个用户登录的。
此时可以使用whoami命令。
[ecuser@HA5-DZ05 ~]$ whoami
e
浅谈Socket通信(一)
朱辉辉33
socket
在java中ServerSocket用于服务器端,用来监听端口。通过服务器监听,客户端发送请求,双方建立链接后才能通信。当服务器和客户端建立链接后,两边都会产生一个Socket实例,我们可以通过操作Socket来建立通信。
首先我建立一个ServerSocket对象。当然要导入java.net.ServerSocket包
ServerSock
关于框架的简单认识
西蜀石兰
框架
入职两个月多,依然是一个不会写代码的小白,每天的工作就是看代码,写wiki。
前端接触CSS、HTML、JS等语言,一直在用的CS模型,自然免不了数据库的链接及使用,真心涉及框架,项目中用到的BootStrap算一个吧,哦,JQuery只能算半个框架吧,我更觉得它是另外一种语言。
后台一直是纯Java代码,涉及的框架是Quzrtz和log4j。
都说学前端的要知道三大框架,目前node.
You have an error in your SQL syntax; check the manual that corresponds to your
林鹤霄
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'option,changed_ids ) values('0ac91f167f754c8cbac00e9e3dc372
MySQL5.6的my.ini配置
aigo
mysql
注意:以下配置的服务器硬件是:8核16G内存
[client]
port=3306
[mysql]
default-character-set=utf8
[mysqld]
port=3306
basedir=D:/mysql-5.6.21-win
mysql 全文模糊查找 便捷解决方案
alxw4616
mysql
mysql 全文模糊查找 便捷解决方案
2013/6/14 by 半仙
[email protected]
目的: 项目需求实现模糊查找.
原则: 查询不能超过 1秒.
问题: 目标表中有超过1千万条记录. 使用like '%str%' 进行模糊查询无法达到性能需求.
解决方案: 使用mysql全文索引.
1.全文索引 : MySQL支持全文索引和搜索功能。MySQL中的全文索
自定义数据结构 链表(单项 ,双向,环形)
百合不是茶
单项链表 双向链表
链表与动态数组的实现方式差不多, 数组适合快速删除某个元素 链表则可以快速的保存数组并且可以是不连续的
单项链表;数据从第一个指向最后一个
实现代码:
//定义动态链表
clas
threadLocal实例
bijian1013
java thread java多线程 threadLocal
实例1:
package com.bijian.thread;
public class MyThread extends Thread {
private static ThreadLocal tl = new ThreadLocal() {
protected synchronized Object initialValue() {
return new Inte
activemq安全设置—设置admin的用户名和密码
bijian1013
java activemq
ActiveMQ使用的是jetty服务器, 打开conf/jetty.xml文件,找到
<bean id="adminSecurityConstraint" class="org.eclipse.jetty.util.security.Constraint">
<p
【Java范型一】Java范型详解之范型集合和自定义范型类
bit1129
java
本文详细介绍Java的范型,写一篇关于范型的博客原因有两个,前几天要写个范型方法(返回值根据传入的类型而定),竟然想了半天,最后还是从网上找了个范型方法的写法;再者,前一段时间在看Gson, Gson这个JSON包的精华就在于对范型的优雅简单的处理,看它的源代码就比较迷糊,只其然不知其所以然。所以,还是花点时间系统的整理总结下范型吧。
范型内容
范型集合类
范型类
【HBase十二】HFile存储的是一个列族的数据
bit1129
hbase
在HBase中,每个HFile存储的是一个表中一个列族的数据,也就是说,当一个表中有多个列簇时,针对每个列簇插入数据,最后产生的数据是多个HFile,每个对应一个列族,通过如下操作验证
1. 建立一个有两个列族的表
create 'members','colfam1','colfam2'
2. 在members表中的colfam1中插入50*5
Nginx 官方一个配置实例
ronin47
nginx 配置实例
user www www;
worker_processes 5;
error_log logs/error.log;
pid logs/nginx.pid;
worker_rlimit_nofile 8192;
events {
worker_connections 4096;}
http {
include conf/mim
java-15.输入一颗二元查找树,将该树转换为它的镜像, 即在转换后的二元查找树中,左子树的结点都大于右子树的结点。 用递归和循环
bylijinnan
java
//use recursion
public static void mirrorHelp1(Node node){
if(node==null)return;
swapChild(node);
mirrorHelp1(node.getLeft());
mirrorHelp1(node.getRight());
}
//use no recursion bu
返回null还是empty
bylijinnan
java apache spring 编程
第一个问题,函数是应当返回null还是长度为0的数组(或集合)?
第二个问题,函数输入参数不当时,是异常还是返回null?
先看第一个问题
有两个约定我觉得应当遵守:
1.返回零长度的数组或集合而不是null(详见《Effective Java》)
理由就是,如果返回empty,就可以少了很多not-null判断:
List<Person> list
[科技与项目]工作流厂商的战略机遇期
comsci
工作流
在新的战略平衡形成之前,这里有一个短暂的战略机遇期,只有大概最短6年,最长14年的时间,这段时间就好像我们森林里面的小动物,在秋天中,必须抓紧一切时间存储坚果一样,否则无法熬过漫长的冬季。。。。
在微软,甲骨文,谷歌,IBM,SONY
过度设计-举例
cuityang
过度设计
过度设计,需要更多设计时间和测试成本,如无必要,还是尽量简洁一些好。
未来的事情,比如 访问量,比如数据库的容量,比如是否需要改成分布式 都是无法预料的
再举一个例子,对闰年的判断逻辑:
1、 if($Year%4==0) return True; else return Fasle;
2、if ( ($Year%4==0 &am
java进阶,《Java性能优化权威指南》试读
darkblue086
java性能优化
记得当年随意读了微软出版社的.NET 2.0应用程序调试,才发现调试器如此强大,应用程序开发调试其实真的简单了很多,不仅仅是因为里面介绍了很多调试器工具的使用,更是因为里面寻找问题并重现问题的思想让我震撼,时隔多年,Java已经如日中天,成为许多大型企业应用的首选,而今天,这本《Java性能优化权威指南》让我再次找到了这种感觉,从不经意的开发过程让我刮目相看,原来性能调优不是简单地看看热点在哪里,
网络学习笔记初识OSI七层模型与TCP协议
dcj3sjt126com
学习笔记
协议:在计算机网络中通信各方面所达成的、共同遵守和执行的一系列约定 计算机网络的体系结构:计算机网络的层次结构和各层协议的集合。 两类服务: 面向连接的服务通信双方在通信之前先建立某种状态,并在通信过程中维持这种状态的变化,同时为服务对象预先分配一定的资源。这种服务叫做面向连接的服务。 面向无连接的服务通信双方在通信前后不建立和维持状态,不为服务对象
mac中用命令行运行mysql
dcj3sjt126com
mysql linux mac
参考这篇博客:http://www.cnblogs.com/macro-cheng/archive/2011/10/25/mysql-001.html 感觉workbench不好用(有点先入为主了)。
1,安装mysql
在mysql的官方网站下载 mysql 5.5.23 http://www.mysql.com/downloads/mysql/,根据我的机器的配置情况选择了64
MongDB查询(1)——基本查询[五]
eksliang
mongodb mongodb 查询 mongodb find
MongDB查询
转载请出自出处:http://eksliang.iteye.com/blog/2174452 一、find简介
MongoDB中使用find来进行查询。
API:如下
function ( query , fields , limit , skip, batchSize, options ){.....}
参数含义:
query:查询参数
fie
base64,加密解密 经融加密,对接
y806839048
经融加密 对接
String data0 = new String(Base64.encode(bo.getPaymentResult().getBytes(("GBK"))));
String data1 = new String(Base64.decode(data0.toCharArray()),"GBK");
// 注意编码格式,注意用于加密,解密的要是同
JavaWeb之JSP概述
ihuning
javaweb
什么是JSP?为什么使用JSP?
JSP表示Java Server Page,即嵌有Java代码的HTML页面。使用JSP是因为在HTML中嵌入Java代码比在Java代码中拼接字符串更容易、更方便和更高效。
JSP起源
在很多动态网页中,绝大部分内容都是固定不变的,只有局部内容需要动态产生和改变。
如果使用Servl
apple watch 指南
啸笑天
apple
1. 文档
WatchKit Programming Guide(中译在线版 By @CocoaChina) 译文 译者 原文 概览 - 开始为 Apple Watch 进行开发 @星夜暮晨 Overview - Developing for Apple Watch 概览 - 配置 Xcode 项目 - Overview - Configuring Yo
java经典的基础题目
macroli
java 编程
1.列举出 10个JAVA语言的优势 a:免费,开源,跨平台(平台独立性),简单易用,功能完善,面向对象,健壮性,多线程,结构中立,企业应用的成熟平台, 无线应用 2.列举出JAVA中10个面向对象编程的术语 a:包,类,接口,对象,属性,方法,构造器,继承,封装,多态,抽象,范型 3.列举出JAVA中6个比较常用的包 Java.lang;java.util;java.io;java.sql;ja
你所不知道神奇的js replace正则表达式
qiaolevip
每天进步一点点 学习永无止境 纵观千象 regex
var v = 'C9CFBAA3CAD0';
console.log(v);
var arr = v.split('');
for (var i = 0; i < arr.length; i ++) {
if (i % 2 == 0) arr[i] = '%' + arr[i];
}
console.log(arr.join(''));
console.log(v.r
[一起学Hive]之十五-分析Hive表和分区的统计信息(Statistics)
superlxw1234
hive hive分析表 hive统计信息 hive Statistics
关键字:Hive统计信息、分析Hive表、Hive Statistics
类似于Oracle的分析表,Hive中也提供了分析表和分区的功能,通过自动和手动分析Hive表,将Hive表的一些统计信息存储到元数据中。
表和分区的统计信息主要包括:行数、文件数、原始数据大小、所占存储大小、最后一次操作时间等;
14.1 新表的统计信息
对于一个新创建
Spring Boot 1.2.5 发布
wiselyman
spring boot
Spring Boot 1.2.5已在7月2日发布,现在可以从spring的maven库和maven中心库下载。
这个版本是一个维护的发布版,主要是一些修复以及将Spring的依赖提升至4.1.7(包含重要的安全修复)。
官方建议所有的Spring Boot用户升级这个版本。
项目首页 | 源