自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

石湖一叶

How to be a madness?

  • 博客(75)
  • 资源 (1)
  • 问答 (2)
  • 收藏
  • 关注

原创 简单工厂和工厂模式

首先是一个引入的例子,在这段代码中,根据配置文件的后缀选择不同的解析器。将存储在文件中的配置解析成内存对象RuleConfig第一次优化:将上边代码中涉及parser创建的部分剥离出来,抽象成createParser()函数。第二次优化:为了让类的职责更加单一、代码更加清晰,还可以把createParser()函数放到一个独立的类中,让这个类只负责对象的创建。而这个类就是简单工厂类上边是第一种实现简单工厂模式的方法,下边是第二种实现简单工厂模式的方法。

2022-11-05 22:35:02 716 1

原创 单例模式。

对于业务而言,有些数据在系统中只需要保存一份,那么就可以设计为单例模式。比如系统的配置信息类,Log日志或者全局唯一ID这种。

2022-11-05 19:51:27 315

原创 建造者模式

【代码】建造者模式。

2022-11-05 17:46:17 311

原创 记一次git冲突解决

因为用的是gitlab,我一开始就在gitlab网页上点击了处理冲突的按钮,点进去的界面是一左一右,左边是我的,右边是master的(theirs)。这是必然的,在这个时候重新处理一次冲突合并就行了,只需要把蓝色和绿色的代码也一并复制到中间的结果区,最后确定,就可以解决问题。于是我只处理红色的冲突部分,我是这样处理的:我把左侧我的代码复制,然后粘贴到中间。比如这个我觉得应该是有用的,但是由于我使用git的习惯是命令行+idea按钮,对git命令行不完全熟悉,所以我按照这个教程没有走完,在这里贴一下链接。

2022-10-17 22:41:29 1608

原创 动态SQL

Mybatis框架的动态SQL技术是一种根据特定条件动态拼装SQL语句的功能,它存在的意义是为了解决拼接SQL语句字符串时的痛点问题

2022-09-07 21:58:42 129

原创 MyBatis的一对多和多对一关系映射

fetchType:当开启了全局的延迟加载之后,可以通过该属性手动控制延迟加载的效果,fetchType="lazy(延迟加载)|eager(立即加载)"开启后,需要用到查询dept的时候才会调用相应的SQL语句。开启延迟加载,只运行获取emp的SQL语句。2. 根据部门id查询部门中的所有员工。关闭延迟加载,两条SQL语句都运行了。查询员工信息以及员工所对应的部门信息。

2022-09-07 21:53:24 174

原创 特殊SQL的执行

/** * 根据用户名进行模糊查询 * @param username * @return java.util.List * @date 2022/2/26 21:56 */List getUserByLike(@Param("username") String username);

2022-09-03 17:33:26 112

原创 MyBatis各种查询功能

如果查询出的数据只有一条,可以通过实体类对象接收List集合接收Map集合接收,结果{password=123456, sex=男, id=1, age=23, username=admin}

2022-09-03 16:43:12 76

原创 MyBatis编写xml获取参数值的方式

MyBatis获取参数值的两种方式:${}和#{}${}的本质就是字符串拼接,#{}的本质就是占位符赋值${}使用字符串拼接的方式拼接sql,若为字符串类型或日期类型的字段进行赋值时,需要手动加单引号;但是#{}使用占位符赋值的方式拼接sql,此时为字符串类型或日期类型的字段进行赋值时,可以自动添加单引号

2022-09-02 23:11:24 1812

原创 平安集团金融壹账通面经

10月份的事。平安集团可以投6个子公司,每个子公司可以投2个部门。官方の海投。印象最深的一点就是,两轮面试官都是架构师。问题不是很难,没有深挖项目。一面是扣知识点的细节理解,二面是整体的知识脉络梳理。二面隔天就hr面了,等开奖中。...

2021-11-05 18:48:35 2066 2

原创 民生总行科技岗面经

软件开发岗,业务线是直销银行,base北京顺义。6月份笔试,8月份约面试,10月份offer。一个字,佛。笔试最接近互联网风格的笔试。因为是提前批,所以编程题a的不是很多,侥幸进了面试面试分为两轮。一面是两位面试官,同事+领导。问的范围和互联网差不多,项目和框架,但是问的偏基础,半个小时左右。二面应该是领导面试了。和农行一样都是群面,但是只有3个候选人。面试官一共问了我三个问题1、你有什么缺点2、你是物联网学院的,能不能解释一下什么是物联网3、项目的运行流程

2021-11-05 18:34:33 6821 2

原创 Zoom WebTeam面经

8.28做的笔试,9月下旬约面试。一面开场:面试官自我介绍的时候说他写了10年的java,属实把我整的有点紧张。问我除了java有没有接触过别的语言,我回答说因为苏州某兄弟院校学的是c/cpp,所以我们系主任设置课程的时候选择了主修java,面试官说“理解理解”。之后提问了经典的java三大特性,我当时补充了一句“从我学java的时候就有人说java要死了,但是到我硕士快毕业还活着,一大半功劳得归结给spring”,面试官笑着说“java确实死不了,就是框架迭代太快了”。问答:0、创建对

2021-10-28 18:14:32 1711 3

原创 58同城HBG面经

房产部门,负责58主站房产板块和安居客的技术中台一面0、自我介绍1、String StringBuilder StringBuffer2、HashMap连环问3、算法:找出数组中最小的数。听到这个题目我当时愣了好久,反复确认好几次题目意思。面试官以为我不会,安慰地说,实在不行写个伪代码。。。。二面当时刚和导师开会回来,下了高铁发现面试时间到了,扔下导师跑到附近的肯德基。面试官惊讶了一下,问我在哪里。解释了一下之后问我参加的会议是什么方向的,然后全程交流深度学习。从我的研究

2021-10-27 13:05:23 440

原创 字节跳动商业化一面

投的后端但是被转到客户端。0、委托模式的场景和好处1、SOLID原则2、spring用到的设计模式3、tcp可靠传输的保证4、https流程5、如何停止一个线程6、ArrayList的ConcurrentModificationException怎么解决/避免7、HashMap LinkedHashMap TreeMap8、算法题:最经典的dp,面试官大好人是想让我体面一点的,没接住。。。...

2021-10-26 18:30:08 278

原创 美团两次一面(民宿、打车)面经

笔试成绩比较低,被后端捞起来kpi,之后转到了测开又面了一次。后端一面全程八股文0、AIO听过吗1、NIO和BIO的优劣对比2、什么时候会用到factorybean,而不是xml3、http状态码4、post和get的区别5、转发和重定向的区别6、索引是怎么提高查询速度的7、事务的概念和特性测开一面没记录。应该是之前的面评还凑活才捞的我,这次一搞面评应该花了。...

2021-10-26 18:26:40 159

原创 同程旅游火车票部门面经

技术面只有一轮,面试官老烟嗓了0、行锁升级成表锁1、事务传播机制2、ThreadLocal会导致内存溢出吗,是弱引用的原因吗3、三个线程按顺序打印ABC怎么做4、可重入锁怎么实现5、spring的启动过程/被谁启动的/入口点6、linux常用命令hr面待遇太低了,是我手里最低的,还不给a...

2021-10-26 18:21:26 181

原创 360智慧城市部门面经

一面0、动态代理和静态代理1、jdk代理和cglib的区别2、springboot的开发和测试环境怎么配置、切换3、Integer 的==二面0、BIO、NIO和AIO1、伪异步IO2、Reactor模式3、除了netty之外的技术框架有哪些4、零拷贝,能优化成真正的零拷贝吗5、RPC框架参考过dubbo的实现吗,dubbo扩展了哪些功能6、带权轮询的权是什么、怎么确定的7、protobuf协议的优缺点,dubbo支持哪些序列化协议8、protob

2021-10-26 18:16:40 176

原创 度小满支付部门面经

一面GET和POST的区别HTTP2.0的特性压缩头部、多路复用、请求优先级、二进制分帧HTTP和HTTPS的区别OSI哪七层,TCP在哪一层三次握手,两次可以吗,四次可以吗TCP如何保证可靠传输ACID,隔离级别innoDB如何实现可重复读的,read view是什么时候创建的innoDB索引的数据结构是啥,为啥不用B树命中联合索引为什么不需要回表因为实现了索引覆盖redis常用数据结构ziplist:双向链表,但是所有节点都在连续的空间,p

2021-10-26 18:12:14 258

原创 bilibili主站技术中心一面

0、IoC项目的实现细节和整体思路1、三级缓存2、tcp粘包的原因和解决方法3、HashMap插入key的过程4、HashMap为什么不直接用红黑树呢5、redis底层有哪些数据结构6、为什么zset用跳表,不用红黑树二叉查找树呢7、redis的数据类型的应用场景8、Spring用到了哪些设计模式9、aop的使用场景10、缓存击穿 缓存穿透 缓存雪崩11、缓存总是要失效的,除了设置过期时间长一点还有别的方法吗12、联合索引的回表13、可重复读的实现原理

2021-10-26 18:08:58 124

原创 阿里菜CAI鸟NIAO面经

一面XML和注解实现IoC的差别Bean和对象的区别生命周期的管理BeanFactory和FactoryBeanBeanFactory是IOC最基本的容器,负责生产和管理bean,比如获取bean或者bean的属性。它为其他具体的IOC容器提供了最基本的规范,例如DefaultListableBeanFactory, XmlBeanFactory,ApplicationContext 等具体的容器都是实现了BeanFactory,再在其基础之上附加了其他的功能。FactoryB.

2021-10-26 18:05:44 158

原创 京东提前批面经

0、自我介绍1、三次握手2、四次挥手,每一次挥手之后客户端和服务器的状态,为什么TIME_WAIT是2倍最大报文存活时间3、NIO和BIO的区别,Selector和Epoll的底层原理4、同步和异步的区别,异步底层的实现原理5、Bean的生命周期6、BeanDefinitionReader是怎么读取XML中的配置的7、Bean实例的创建有哪几种方式8、AOP的理解,代理方式,代理底层怎么实现的9、SpringMVC的流程,View输出的是什么,Handler的作用是什么

2021-10-26 18:02:01 85

原创 虾皮shopee提前批面经

一面95min0、自我介绍1、实习干啥了2、为啥不去互联网公司实习3、专硕做实验室项目吗4、jvm内存结构,对象只能存在堆中吗,逃逸分析懂吗5、arraylist和linkedlist区别,用arraylist有哪些要注意的6、数据库并发问题7、数据库隔离级别,mvcc能解决幻读吗,mvcc怎么能可重复度的8、redis有什么应用场景,还有呢9、如果把商品缓存在redis,但是基本上只有一两个key被访问,其他key都不被访问,这个时候你可以做什么10、red

2021-10-26 17:57:46 224

原创 农行上海研发中心面经

笔试八月还是九月来着记不得了。题量很大,选择判断填空算法。风格好比大学考试。难不难,就是题量大时间短,一共120min。算法是三道easy而且测试用例应该不多,没有特殊用例。面试九月底线下面试。到了之后先手撕一道算法题。我的题目是实现类似replace的算法。我想这直接用api,但是我忘了怎么写了。。。。于是自己实现了一边,从读取输入到输出,基本每行都写了注释。解法看着很笨,但是我觉得救了我之后是面试。群面。8个同学一个小组,7个面试官,中间是主管负责主持,其他6位负

2021-10-26 17:39:13 1531

原创 万得资讯 java开发面经

一面0、自我介绍1、Netty高性能的体现2、零拷贝的底层原理3、自定义消息如何实现的,消息的字节流每一部分都是什么4、BIO和NIO的区别5、Server端怎么编写二面0、自我介绍1、实习内容,上线了吗,为什么不想实习转正2、挑简历里的一个项目讲一下3、项目实现的时候遇到了什么问题4、讲讲JVM5、Redis的特性,为什么快6、学习一项新技术的时候,学习方法是什么7、反问HR面0、大学里担任过班干部吗,学生会干部呢1、绩点

2021-08-02 18:18:11 641 2

原创 大华研发中心提前批面经

0、自我介绍1、写过哪些demo2、简历里项目的功能和亮点3、讲讲List Set 和Map4、什么是单例模式5、在自己的项目中实现过单例模式吗6、聊天信息敏感词过滤的实现思路7、快排实现思路8、Java的主流框架用过哪些...

2021-07-20 23:18:03 215

原创 Arrays.sort()对数组的逆序实现

如果是比较一维数字数组的话,用Integer[]来初始化数组Integer[] arr1 = new Integer[]{1,3,2};然后要用Comparator来逆序,源码是这样的public static <T> void sort(T[] a, Comparator<? super T> c) { if (c == null) { sort(a); } else { ...

2021-06-28 23:56:22 4938

原创 猫眼娱乐实习二面面经

0、自我介绍1、实习做了什么2、RPC框架实现了哪些功能3、RPC工作原理4、有相应的注册中心吗5、netty的通信和socket的通信有什么区别6、netty使用了什么样的线程模型7、netty中客户端发送请求到得到返回的数据经历了哪些过程8、netty实现异步的原理9、我认为你的项目不能称之为RPC框架,只是做了一个跨网络的调用。你认为一个完善的rpc框架应该实现哪些功能10、负载均衡算法有哪些11、RPC框架的序列化怎么处理的,用了哪个版本的json12

2021-06-21 20:00:16 327

原创 农行上海研发中心实习面经

0、自我介绍1、java的传值和传引用2、mysql的默认隔离级别3、java的基本数据类型4、I/Omo'xi'ni'g

2021-06-18 16:32:43 459 1

原创 猫眼娱乐实习一面面经

远程面试一个小时,被干的稀碎。0、自我介绍1、如何判定垃圾,垃圾回收算法2、jvm了解哪些3、一段关于synchronized的代码,会怎

2021-06-18 16:21:09 457 3

原创 MySQL的聚合函数是否忽略NULL

MySQL常见的聚合函数有以下几个:AVG(), MAX(), MIN(), SUM(), COUNT()q

2021-06-08 19:58:09 1422

原创 【深入理解jvm阅读笔记】类加载机制

定义类加载机制指的是把Class文件变成jvm能直接使用的java文件的过程类的生命周期加载→验证→准备→解析→初始化→使用→卸载类加载过程也就是类的生命周期的前5个,接下来介绍一下每个过程的功能加载:主要3个功能。①通过一个类的全限定名来获取此类的二进制字节流,就是通过Class.forName("全类名")方法将java程序从Source源代码阶段引入到Class类对象阶段 ②将这个字节流所代表的静...

2021-05-13 21:39:26 161 2

原创 【深入理解jvm阅读笔记】经典垃圾收集器

针对新生代Serial收集器:特点是单线程,"Stop the World"ParNew收集器:Serial的多线程版本Parallel Scavenge收集器:基于标记-复制算法,多线程。和ParNew的区别是,它重在强调吞吐量 吞吐量 = 运行用户代码时间 / (运行用户代码时间+运行垃圾收集时间) 提供两个参...

2021-05-13 16:40:06 109

原创 【深入理解jvm阅读笔记】java内存区域

java堆java堆是垃圾收集器管理的内存区域,大小可以扩展,通过参数-Xmx-Xms设定-Xmx指最大堆大小。-Xms指最小堆大小,也就是初始化的大小。方法区方法去中存储常量、静态变量运行时常量池中存储字段、方法运行时常量池运行时常量池在方法区中,同时,在方法区中还有一个与之对应的叫Class文件常量池他们的区别在于:java并不要求常量一定只在编译期间才能生成,也就是说并非预置入Class文件常量池的内容才能进入运行时常量池(比如Stri...

2021-05-12 18:32:06 121

原创 Channel、ChannelPipeline、ChannelHandler、ChannelHandlerContext

每一个Channel被创建,就会生成对应的一个ChannelPipeline和它绑定。ChannelPipeline中包含了一个处理该Channel消息的ChannelHandler链。当每一个ChannelHandler被注册到该ChannelPipeline中就会生成一个对应的 ChannelHandlerContext,和该ChannelHandler进行绑定。一个ChannelHandler可以从属于(注册到)多个ChannelPipeline。所以,一个ChannelHandler..

2021-04-12 13:31:30 244

转载 java中的各种锁

深度好文 分享之https://tech.meituan.com/2018/11/15/java-lock.html

2021-03-20 14:23:36 66

原创 Release实习笔试

主要和SQL有关第一题:写一条关于模糊搜索的SQL,如何针对模糊搜索进行快速检索第二题:如何根据特定值筛选数据库中的房源第三题:在小程序中如何实现用户对各个房源的收藏功能 1、用户信息获取 2、如何将收藏信息保存到数据库中...

2021-02-26 16:34:57 74

原创 Java 8 新特性

Lambda 表达式− Lambda 允许把函数作为一个方法的参数(函数作为参数传递到方法中)。 方法引用− 方法引用提供了非常有用的语法,可以直接引用已有Java类或对象(实例)的方法或构造器。与lambda联合使用,方法引用可以使语言的构造更紧凑简洁,减少冗余代码。 默认方法− 默认方法就是一个在接口里面有了一个实现的方法。 新工具− 新的编译工具,如:Nashorn引擎 jjs、 类依赖分析器jdeps。 Stream API−新添加的Stream...

2021-02-25 22:36:57 91

转载 为什么要实现序列化?

工作中我们经常在进行持久化操作和返回数据时都会使用到javabean来统一封装参数,方便操作,一般我们也都会实现Serializable接口,那么问题来了,首先:为什么要进行序列化;其次:每个实体bean都必须实现serializabel接口吗?最后:我做一些项目的时候,没有实现序列化,同样没什么影响,到底什么时候应该进行序列化操作呢?  网上找了很多资料,但是感觉大都没有说的很清楚,所以结合自己的理解做一下总结。  首先第一个问题,实现序列化的两个原因:1、将对象的状态保存在存储媒体中以便可以在以

2021-02-05 23:04:08 3036 3

原创 Please, configure Web Facet first!

idea中jsp页面右键Open in Browser时报错,Please, configure Web Facet first!这是因为项目的web文件路径错误导致的。解决方法:1、打开Project Structure2、按照上图的提示,修改web源文件的路径即可。因为我把idea默认生成的webapp的文件家移动到了src/main/目录下,所以报了如上的错。之后把tomcat配置好之后就可以进入8080了...

2021-01-30 20:08:23 7354 3

原创 Access denied for user ‘Walter‘@‘localhost‘ (using password: YES)

在动手学习做ssm项目的时候遇到了数据库连接的问题,一开始用的是c3p0,然后报错就以为是连接池的原因,换了德鲁伊之后还是出现上图的一模一样的错误。通过cmd手动开启mysql然后进行对比发现是用户名不一样,在cmd里的用户名是root,而不是图中的Walter。因为在项目中我是用配置文件写成这样的形式username=root然后让xml加载的,但是我发现加载的时候虽然我写的是root,程序执行的时候还是会把原本应该是root的用户名变为Walter。于是干脆暴力的把配置文件中的user

2021-01-28 16:09:29 293

A*算法原版论文

A* (A-Star)算法是一种静态路网中求解最短路径最有效的直接搜索方法,也是许多其他问题的常用启发式算法。注意——是最有效的直接搜索算法,之后涌现了很多预处理算法(如ALT,CH,HL等等),在线查询效率是A*算法的数千甚至上万倍。

2019-04-22

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除