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初级面试总结)
DBA面试总结(Oracle篇)
浮萍哥
dba oracle 数据库
一、备份恢复1.RMAN备份是一种用于备份和恢复数据库文件归档日志和控制文件的工具软件,主要执行的是物理备份,可以执行完全或不完全的数据库恢复。既能支持热备,在归档模式下,RMAN可以执行在线备份。在非归档模式下,RMAN备份通常在数据库处于mount状态下进行。RMAN备份具有以下优点:支持增量备份,可以节省备份时间和空间。自动管理备份文件,无需手动指定文件名或位置,自动化备份和恢复,无需手动执
面试总结:Qt 信号槽机制与 MOC 原理
TravisBytes
QT 编程问题档案 面试 qt 职场和发展
目录1.基本概念1.1信号(Signal)1.2槽(Slot)1.3连接(Connect)2.MOC(Meta-ObjectCompiler)是什么?2.1为什么需要MOC2.2工作流程2.3`Q_OBJECT`宏的意义3.信号槽的底层原理3.1发射信号(emit)3.2调用槽函数3.3新旧语法的实现差异4.使用示例4.1常规:QObject子类中信号槽4.2Lambdas作为槽(现代写法)5.常
Java 2024年面试总结(持续更新)
m0_74825656
面试 学习路线 阿里巴巴 java 面试 开发语言
目录最近趁着金三银四面了五六家公司吧,也整理了一些问题供大家参考一下(适合经验三年左右的)。面试问题(答案是我自己总结的,不一定正确):总结:最近趁着金三银四面了五六家公司吧,也整理了一些问题供大家参考一下(适合经验三四年左右的)。面试问题(答案是我自己总结的,不一定正确):1.自我介绍简单一点吧,把自己的情况说清楚,一两分钟即可。2.微服务的组件答:微服务是把一个类似单体项目根据某种维度进行拆分
2024年Java篇:蚂蚁金服、拼多多、字节跳动的面试总结(干货)
2401_89740557
java 面试 开发语言
算法题要注意的是合法性校验、边界条件以及异常的处理。另外,如果要写测试用例,一定要保证测试覆盖场景尽可能全。加上平时刷刷算法题,这种考核应该没问题的。二面自我介绍下呗开源项目贡献过代码么?(Dubbo提过一个打印accesslog的bug算么)目前在部门做什么,业务简单介绍下,内部有哪些系统,作用和交互过程说下Dubbo踩过哪些坑,分别是怎么解决的?(说了异常处理时业务异常捕获的问题,自定义了一个
2024年hw蓝队初级面试总结_weblogic反序列化流量特征(1)
2401_84254530
面试 职场和发展
apache:解析漏洞1.php%0a换行解析1.php.xxx未知后缀解析SSI远程命令执行路径穿越nginx:解析漏洞1.jpg/.php目录穿越(nginx配置别名的时候alias的时候,忘记加/将造成目录穿越漏洞)CRLF注入(Nginx会将$uri进行解码,导致传入%0a%0d即可引入换行符,造成CRLF注入漏洞)jboss:反序列化war后门部署weblogic:反序列化ssrf任意文
【后端面试总结】ES的_template与_index_template技术详解
ThisIsClark
后端面试总结 面试 elasticsearch jenkins
在Elasticsearch(简称ES)中,索引模板(IndexTemplate)和组件模板(ComponentTemplate)是两种用于预定义索引配置的强大工具。它们允许用户在索引创建时自动应用预设的设置、映射(Mappings)和别名(Aliases),从而简化索引管理过程。本文将详细介绍ES中的_template和_index_template的概念、用途、创建、查询、更新及删除等操作。一
jetpack compose 开发架构选择探讨(一),这是一份用心整理的Android面试总结
m0_66264630
程序员 架构 移动开发 android
然后我们分析下这个例子只有一个count状态和add操作,因此这样来实现viewModel,这里基于jetpackviewmodel和livedata组件来实现classMvvmViewModel:ViewModel(){valcountState=MutableLiveData(1)funadd(num:Int){countState.postValue(countState.valueasIn
2024 java面试题
TPBoreas
# Java面试 开发语言 后端
目录JAVA初级请简述你对MVC模式的理解SpringBean的生命周期可以分为以下几步:Spring自动装配bean有哪些方式?说一下类的加载过程?在使用HashMap的时候,用String做key有什么好处?HashMap、LinkedHashMap、TreeMap的区别?this与super之间有什么区别?乐观锁和悲观锁的实现是怎么样的?==与equals的区别Final在java中有什么作
2025 最新flutter面试总结
@福者
Flutter flutter 面试 职场和发展
目录1.Dart是值传递还是引用传递?2.Flutter是单引擎还是双引擎3.StatelessWidget和StatefulWidget在Flutter中有什么区别?4.简述Dart语音特性5.Navigator是什么?在Flutter中Routes是什么?6、Dart是不是单线程模型?是如何运行的?7.解释StatefulWidgetLifecycle?8.Dart的事件循环的运行遵循以下规则
【后端面试总结】mysql的group by怎么用
ThisIsClark
后端面试总结 面试 mysql 职场和发展
GROUPBY是SQL中的一种用于对结果集进行分组的子句,常与聚合函数(如COUNT()、SUM()、AVG()、MAX()和MIN()等)一起使用。GROUPBY的作用是基于一个或多个列对查询结果进行分组,然后可以对每个分组执行聚合操作。以下是GROUPBY的一些关键点和用法示例:基本用法假设有一个名为employees的表,表结构如下:idnamedepartmentsalary1AliceH
2024金三银四必备:Java后端开发面试总结【25个技术专题】
2401_89790869
java 面试 开发语言
16、List和Map、Set的区别?17、数组和链表分别比较适合用于什么场景,为什么?18、说说ConcurrentHashMap19、Java中ArrayList和LinkedList区别?20、TreeMap(可排序)21、请用两个队列模拟堆栈结构?22、Map中的key和value可以为null?23、数据结构基础之双向链表24、HashMap的底层实现25、ConcurrentHashM
Java面试总结(1)
dd要努力变优秀!
java 面试 开发语言
问题1自我介绍:面试官您好,我叫xxx,是来自xxxx大学软件工程专业的一名应届生,我这次想应聘的是java开发实习生,在校期间,我热爱编程,能够使用java,C++,python的编程语言,其中系统的学习过java及其相关技术栈,使用过SSM,springMVC,springboot等框架开发,开发过web应用,微信小程序等,很期待能到贵公司实习,提高我的开发能力。问题2项目经验(简历上的)问题
【后端面试总结】Golang可能的内存泄漏场景及应对策略
ThisIsClark
Go 后端面试总结 面试 golang 职场和发展
Golang可能的内存泄漏场景及应对策略一、引言Golang作为一种高性能、并发友好的编程语言,其内置的垃圾回收机制极大地简化了内存管理。然而,这并不意味着开发者可以完全忽视内存泄漏问题。在实际开发中,由于不当的资源管理、循环引用、以及goroutine管理等问题,仍然可能导致内存泄漏。本文将深入探讨Golang中可能出现的内存泄漏场景,并提供相应的应对策略。二、Golang内存泄漏场景1.循环引
面试总结1
Xl_Lee
性能优化1.造成tableView卡顿的原因有哪些?1.最常用的就是cell的重用,注册重用标识符如果不重用cell时,每当一个cell显示到屏幕上时,就会重新创建一个新的cell如果有很多数据的时候,就会堆积很多cell。如果重用cell,为cell创建一个ID,每当需要显示cell的时候,都会先去缓冲池中寻找可循环利用的cell,如果没有再重新创建cell2.避免cell的重新布局cell的布
Python数据获取——图片数据提取,2024年最新2024Python开发社招面试总结+解答分享
2401_84182318
2024年程序员学习 python 面试 开发语言
一、利用exifread提取图片的EXIF信息=====================================================================================exifread介绍:EXIF信息,是可交换图像文件的缩写,是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据。EXIF可以附加于JPEG、TIFF、RIFF等文件之中
Java初级学习路线概要~
艾伦~耶格尔
Java初级 java 学习 开发语言 intellij-idea jdk
前言如果你刚刚开始学习Java,掌握基础知识是关键。本文将提供一个详细的Java初级学习路线,帮助各位看官从基础开始,逐步掌握Java编程语言的核心概念。1.Java语言基础1.1Java简介-**Java介绍**:Java是一种广泛使用的编程语言,以其跨平台特性和面向对象设计而著名。-**应用场景**:Web应用、桌面应用、移动应用等。1.2环境搭建**安装JDK**:从[Oracle官网](h
java正则表达式提取字符串中的序号,BAT大厂面试总结
qq_38514574
程序员 java 经验分享 面试
第一个:Alibaba[搜索推荐]一面:算法题:长度为n的数组里放了n+1个大小在[1,n]的数,必然至少有一个重复的数,找出来二面:概率题:求一根绳子被切两刀能组成一个三角形的概率。三面主管面:FM推导,deepfm原理,graphembedding,问了之前的一些项目。四面交叉面:模型上线时应该注意的事,如果请求过高模型服务挂了怎么办,tensorflow和torch的区别,如何降低模型复杂度
护网面试总结
炫彩@之星
安全面试经历系列 安全性测试 web安全 安全
护网面试总结1.设备误报如何处理?包含有SQL语句和一些危险函数都有可能产生误报来自外网的误报说明安全设备需要进行策略升级,不需要处置。如果是来自内网的误报可以和负责人协商一下看能不能解决,有必要的话添加白名单处理。2.如何区分扫描流量和手工流量?1.扫描流量数据量大,请求流量有规律可循且频率较高,手工流量请求少,间隔略长2.使用工具扫描的流量一般在数据包中有相关特征信息,比如说通过wiresha
前端面试总结——原型和原型链
旺sir
前端
1.classclassPeople{constructor(name){this.name=name;}eat(){console.log(this.name+'iseatingsomething')}}constzhangsan=newPeople(张三);console.log(zhangsan.name);zhangsan.eat();classStudentextendsPeople{c
模拟面试总结
孤独斗士
模拟面试 笔试题 1024程序员节
一轮模拟面试总结:1.模拟面试前先通知大家:自我介绍重点、面试常见技术问题2.面试期间:每人提问三到四个问题。回答不了三个问题就是不通过。百分制70分通过。常见面试问题有:形式可以一次三人(抢答),或者一次一人(一对一)基本数据类型switch分支结构比较相等++--包装类oop常见概念方法重载、方法重写try-catch-finallyfinalizethrowthrows自定义异常异常分类实体
批批网PHP面试总结
沙蒿同学
表现差的点:1、人事评论我比较真实,但不愿意倾听,可能自己话讲得太多,给人事主观上的感觉2、自我介绍语无伦次,不知道要讲什么好,就按着自己的性子讲,多次被打断,然后紧接着问了以下几个问题回答的不好:3、在之前项目中处理过最难的技术问题,我回答架构日志的原因问题排查不好确定,效率不高,被面试官反问这不是技术问题。4、问到我的优势是什么,能力强体现在哪,一时语顿,我说业务解读能力,面试官说这是每个开发
阿里Java技术面试题,我就服这一文!
Java架构007
金三银四跳槽季即将到来,作为Java开发者你开始刷面试题了吗?别急,小编整理了阿里技术面试题,看这一文就够了!阿里面试题目目录技术一面(基础面试题目)技术二面(技术深度、技术原理)项目实战(项目模拟面试)JAVA开发技术常问的问题阿里必会知识阿里面试范畴面试总结文章福利(答案获取)一:阿里技术一面(基础掌握牢固)常用的异常类型?sessionjava锁gc原理hashmaplistlinkarra
一个三年Java程序员的面试总结!绝对会对你有所帮助!
java成功之路
前言15年毕业到现在也近三年了,最近面试了阿里集团(菜鸟网络,蚂蚁金服),网易,滴滴,点我达,最终收到点我达,网易offer,蚂蚁金服二面挂掉,菜鸟网络一个月了还在流程中...最终有幸去了网易。但是要特别感谢点我达的领导及HR,真的非常非常好,很感谢他们一直的关照和指导。面试整体事项1.简历要准备好,联系方式一定要正确清晰醒目,项目经历按照时间倒序阐述,注意描述自己在项目中承担的职责,简历的模板尽
安卓面试总结——提升
Alex_ecb1
1.热修复的几种方式1.通过更改dex加载顺序实现热修复热修复是基于dex分包方案,和Android虚拟机的类加载器(ClassLoader)实现的在打包apk的时候,会把java文件通过类加载器编译成class文件,然后把class文件组合成class.dex文件,dex文件会把每一个类的id检索起来,存在一个链表里面。将编译好的class文件,拆分成多个dex文件,将应用启动时必须用到的类和这
纯干货!Android性能优化面试题集锦,持续更新中
程序员大婕
程序员 Android
第一次观看我文章的朋友,可以关注、点赞、转发一下,每天分享各种干货技术和程序猿趣事前言随着移动终端的快速发展,Android开发人员也越来越多,Android开发市场也进入了一个饱和的状态,Android开发人员也面临着难找一份好工作的处境。而找工作的第一关就是面试,一个好的面试往往能很好的提高你的入职几率,下面我总结了一些本人在一些大厂的面试总结,希望的观看的小伙伴有所帮助。Android基础&
10年Java面试总结:Java程序员面试必备的面试技巧
java程序员面试面试问题经验
作为一名资深10年Java技术专家,我参与了无数次的面试,无论是作为面试者还是面试官。在这里,我将分享我的一些面试经历和面试技巧,希望能帮助即将面临面试的Java程序员们。本文已收录于,我的技术网站ddkk.com,有大厂完整面经,工作技术,架构师成长之路,等经验分享我的面试经历回顾我的Java职业生涯,我清晰地记得一次特别的面试经历。那是我申请一家知名科技公司的Java开发岗位。为了这次面试,我
前端面试总结
前端面试
一:浏览器事件循环机制个人理解(EventLoop)1:浏览器进程模型要理解浏览器事件循环机制首先要明白浏览器的进程模型,进程就是一个程序运行需要给其分配一块专属的内存空间,可以把这块内存空间简单理解为进程。进程之间是相互独立的,如果进程之间需要通信则需要对方同意。2:线程模型既然分配内存空间有了进程之后就可以运行程序了,程序运行之后总需要有人干活,这是就需要引入线程的概念,程序运行之后会默认开启
数分面试总结3
悠悠zzz
这部分记录面试经历和面后复盘。面试前的准备部分熟悉简历:1.1建议把简历的自我介绍,各个项目的描述细节都写下来,然后多次背诵,要说到顺口,张口就来的程度。这部分不卡壳是很加分的。1.2建议把面试官可能针对简历询问的问题都提前做准备,比如为什么当时选择这个指标,为什么不选择别的,逻辑支撑是什么,指标的前后变化有多少等等。1.3建议把学校背景方面也做一个熟悉。本人曾经在介绍学校的时候把在校时间记混了,
面试总结
weixin_30511107
面试 python 网络
自我介绍:我叫XX,17年七月份毕业于XX大学XX专业,研究方向是JavaWeb,主要做管理方面的一些网站,包括学生选课系统,学生宿舍管理系统,校医院体检系统,16年11月份到17年的4月份之间在百度搜索公司商业服务质量部网盟团队实习,实习的职位是测试开发,测试网盟的大数据产品中的受众数据管理平台DMP,DMP主要是对人群属性和人群行为进行分析,计算出广告投放的最佳目标人群,帮助广告主选择将广告投
Java学到什么程度可以找到工作?
敲代码的石榴
刚开始学习Java的小伙伴,尤其是以就业为学习目的的小伙伴们,在刚开始学习Java都关心这么一个问题:到底把Java学到何种程度才能找到第一份工作呢?每个人都很现实,目标都是相当的一致,都是为了能拿到像别人高薪的工作。那到底一个Java初学者要学多少Java知识,才能找到第一份Java工作呢?实际上Java初级开发岗位对于从业者的要求并不高,通常能够熟练使用常见的Java框架就可以找到第一份工作了
多线程编程之卫生间
周凡杨
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 半仙 alxw4616@Msn.com
目的: 项目需求实现模糊查找.
原则: 查询不能超过 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用户升级这个版本。
项目首页 | 源