- 博客(89)
- 收藏
- 关注
原创 [个人经验]我的百度测试开发实习始与末
第一次更新:2017年12月23日题记:一个多月前我拿到了百度的实习生offer,18年1月初入职。这是我的第一次公司实习经验,想要从前到后地把它记录下来,一是供自己回顾,二是分享出来希望可以帮到有需要的人。实习缘由:2014年,我进入华中科技大学电子信息与通信学院(当时叫电子信息工程)的卓越工程师班。大概在2017年9月中旬,我侥幸获得了班里的保研名额(不是谦虚,因为我班比较特殊,保研名额数量是...
2017-12-23 10:59:37 6598 3
原创 【面经】2020届斗鱼服务端SP面经
作者:Mustangjy链接:https://www.nowcoder.com/discuss/247345?toCommentId=4062877来源:牛客网斗鱼服务端sp面经声明以下的内容中我的回答不一定是正确或全面的,欢迎大家纠正。正文周日10点的场,9点20带着简历到了斗鱼面试的楼。填了个信息表,开始排号。大概10点10分带到一个房间开始一面。一...
2019-09-16 22:18:38 808
原创 约瑟夫环问题 —— 递归法的简单易懂的解释
最近看了大佬的一篇博客:一行代码解决约瑟夫环问题 前面两个方法都看懂了,比较简单,但是最后一个只用一行代码的解法,实在是没有看懂,但是根据大佬的思路,我也做出了自己的解释,虽然在简洁性上不如大佬的一行完毕,但是整个思路不是很难懂,主要是记忆起来比较方便。大家可以先尝试看看大佬解法。问题描述编号为 1-N 的 N 个士兵围坐在一起形成一个圆圈,从编号为 1 的士兵开始依次报数(1,2,...
2019-07-22 18:17:12 1397
原创 Java线程池 - 重点总结
本文参考:https://www.cnblogs.com/exe19/p/5359885.html 写的很好,但是jdk版本老,与8的代码不符。https://www.jianshu.com/p/50fffbf21b39 可以简单看一下https://www.cnblogs.com/trust-freedom/p/6681948.html jdk版本与8代码相符,流程较为详细...
2019-07-21 20:43:30 408
原创 Java List和Collections的sort()方法使用
我自己使用起来比较记得住的是下面这个labmda表达式用法:ArrayList<Integer> list = new ArrayList<>();list.sort(((int a, int b) -> b - a); //升序//或者复杂一点的,一个字符串数组列表的数组列表,按照其元素(也就是字符串的数组列表)的长度排序。ArrayList<A...
2019-06-29 11:27:43 2891
原创 Python通过对象名调用方法(对象名后面括号和参数)
实习做一个自动化测试项目的时候看到大佬代码:d = u2.connect() #该方法返回一个UIAutomatorServer类的实例d(discription = 'Books').click() # ???wtf,怎么对象名字后面带个括号,什么操作?为了搞懂这个原因,我把代码里原来正确的参数description随便改成了一个错的,比如d(abc='1'),根据报错的信息一步步...
2019-06-26 18:15:33 9420 4
原创 遍历HashMap的方法和选择(全)
0.Notice一般来说只需要记住前三个方法就可以满足所有需求了。1. Lambda表达式 + HashMap.forEach() lambda表达式是jdk8开始出现的新特性,用它遍历HashMap比较方便优美,例如: HashMap<String, String> map = new HashMap<>(); map.f...
2019-05-17 13:05:44 330
原创 多态:子类与父类构造器调用关系、静态非静态代码块的加载顺序
首先把结论贴出来:1. 类的加载顺序。(1) 父类静态代码块(包括静态初始化块,静态属性,但不包括静态方法)(2) 子类静态代码块(包括静态初始化块,静态属性,但不包括静态方法)(3) 父类非静态代码块(包括非静态初始化块,非静态属性)(4) 父类构造函数(5) 子类非静态代码块(包括非静态初始化块,非静态属性)(6) 子类构造函数Point1:关于静态...
2019-04-23 23:22:18 482 2
原创 非递归:二叉树带权路径和 && 遍历二叉树
写在前头的总结下面的先序中序后序遍历以及二叉树的带权路径的解法基本可以囊括绝大多数与二叉树相关的问题,为了方便记忆,在写的时候都用了两个嵌套的while循环,省得到时候再跟while里套if else的记混~首先二叉树的先序、中序、后序遍历在这篇博客里写的很清楚,尤其是后续遍历,思路很巧妙:后序遍历的非递归版本是最有技巧性的,难度相对高一点,但其实是可以转换成前序遍历的。后序遍历...
2019-04-21 00:52:35 633
原创 算法之动态规划(三) 小Q的歌单_腾讯笔试编程题
问题描述:小Q有X首长度为A的不同的歌和Y首长度为B的不同的歌,现在小Q想用这些歌组成一个总长度正好为K的歌单,每首歌最多只能在歌单中出现一次,在不考虑歌单内歌曲的先后顺序的情况下,请问有多少种组成歌单的方法。输入描述:每个输入包含一个测试用例。每个测试用例的第一行包含一个整数,表示歌单的总长度K(1<=K<=1000)。接下来的一行包含四个正整数,分别表示歌的第一种长度...
2019-04-04 21:21:31 612
原创 【有疑问,结论待定】JDK8 Java字符串常量池在Java堆中而不是方法区?
String.intern()方法的作用是返回一个字符串引用,引用的是字符串常量池中的字符串(字面量),所以我们可以通过这个方法来测试,使得字符串常量池内存溢出,看看这个时候报错报的是哪里out of memory。import java.util.ArrayList;public class StringConstancePool { public static void ma...
2019-02-28 21:14:10 12188 10
原创 自用Java错题记录
1.析: c1 = new Cat(10L); c2 = new Cat(10L);A ,c1和c2是两个参数相同的不同对象,c1!=c2,返回falseB ,c2和c3指向同一个引用,所以c2==c3,返回trueC, m与c1是不同类型,不相等,返回falseD,c1没有定义equals方法,默认调用Object类的equals方法,返回falsehttps://ww...
2019-02-23 19:06:20 323
转载 对Java如何判断HashSet和HashMap中相同元素的研究
转自:http://f543711700.iteye.com/blog/800929 对Java如何判断HashSet和HashMap中相同元素的研究Java数据结构JDK HashSet和HashMap一直都是JDK中最常用的两个类,HashSet要求不能存储相同的对象,HashMap要求不能存储相同的键。 那么Java运行时环境是如何判断HashSet中相同对象...
2019-02-23 17:21:16 802
原创 数据结构之树——二叉查找树、2-3树、2-3-4树、红黑树、B树、B+树及其关系
前言对于大量的输入数据,链表的线性访问时间太慢,不宜使用。由此,其他的更高效的数据结构被提出,二叉查找树是其中重要的一个。二叉查找树是两种库集合类TreeSet和TreeMap实现的基础,应用很广泛。在计算机科学中树(tree)是非常有用的抽象概念。树的定义定义树的一种自然的方式是递归的方式。一棵树是一些节点的集合,这个集合可以是空集;若不是空集,则树由称作根(root)的节点r与...
2019-02-20 19:35:34 745
原创 Java学习笔记:泛型、集合与数组
泛型写在前头的重点总结泛型程序设计的作用就是让编写的代码可以被不同类型的对象所重用 泛型的使用,即在声明类或定义一个泛型方法时加形如<T>的菱形,里面是占位符,这个占位符就指代泛型所包含的所有类型 泛型类或方法中的占位符类型如果要加以约束: <T extends Comparable & Serializable>, 而不是用 implements 类...
2019-01-25 00:10:38 807
原创 算法之动态规划(二) 爬楼梯与抢房子
爬楼梯问题假设你正在爬楼梯。需要 爬n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶?思路分析:从动态规划的角度,这个问题的关键在于找出能够推出结果的一个“状态”,每一步的“状态”都可以由之前的“状态”锁推出。由于每一步可以爬1或2个台阶,那么,我到达第n(n>2)阶,第一种可能就是我从第n-2阶爬了两层到的,第二种可能就是我从n-1阶爬了一层...
2019-01-24 00:40:05 333
原创 JVM学习笔记(4) 线程安全 & 虚拟机的同步实现与锁优化
写在前头的重点总结:线程安全的程度:大部分的线程安全类都不是绝对安全而是相对安全的,需要保证这个对象单独的操作是线程安全的,在调用时不需要做额外的保障措施;但是对于一些特定顺序的连续调用,就可能需要在调用端使用额外的同步手段保证调用的正确性。 线程安全的实现方法: 互斥\阻塞同步(synchronized、重入锁ReentrantLock);非阻塞同步——基于冲突检测的乐观并发策略,需要操作...
2019-01-23 21:40:44 218
转载 JVM学习笔记(3) Java内存模型与volatile关键字 & 线程的实现、调度
内存模型的相关概念 并发编程中的三个概念:可见性、原子性、有序性 Java内存模型:主内存、线程的工作内存 深入剖析volatile关键字:lock前缀指令——内存屏障,保证有序性,不保证原子性——无法替代synchronized 使用volatile关键字的场景:状态标记量、双重检测以上参考: Java并发编程:volatile关键字解析 可以说是写的很到位了~上文中特别需...
2019-01-22 16:23:12 524 2
转载 算法之动态规划(一) 如何获得最多的年终奖
预备知识:动态规划:动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解。每一个解都对应于一个值,我们希望找到具有最优值的解。动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分治法不同的是,适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。若用分治法来解这类问题,则分解得到的子...
2018-12-31 16:57:33 423
原创 Ubuntu16.04下安装NS3
官网上的安装教程比较新,网络上一些其他人发布的教程很多没有同步各种依赖包和ubuntu系统版本发生的改变,想要搞明白需要安装哪些依赖、为什么要安装,最好去英文官网上去翻阅:nsnam英文安装wiki注意点:如果使用下面的命令安装依赖的话,就只能安装ns-3.28以及之前的版本,且Ubuntu的版本必须是16.04,否则可能会出问题。sudo apt-get install gcc g...
2018-10-25 16:24:45 2091
原创 JVM学习笔记(2) 垃圾收集器与内存分配策略
Java技术体系中所提倡的自动内存管理,最终可以规划为自动化地解决了两个问题:给对象分配内存、以及回收分配给对象的内存。一、回收内存:垃圾管理器(GC,Garbage Collector)关于G1收集器,详细的内容可以参照:详解 JVM Garbage First(G1) 垃圾收集器二、内存分配与回收策略对象的内存分配,往大方向讲,就是在堆上分配(但也可能经过JIT编译后被拆散为标量...
2018-10-23 17:05:40 4062
原创 JVM学习笔记(1) 由Java对象加载步骤看Java内存区域
Java虚拟机所管理的内存会包括以下几个运行时数据区域:其中除了程序计数器之外,其余的区域都可能会出现内存溢出错误。1.程序计数器:描述的是当前线程所执行的字节码的行号指示器。如果线程在执行的是一个Java方法,则这个计数器记录的是正在执行的虚拟机字节码指令的地址;如果执行的是Native方法,这个计数器则为空(Undifined)。2.Java虚拟机栈:描述的是Java方法执行的内存...
2018-10-18 22:38:27 203
原创 Hibernate笔记+一些错误的解决方法(IDEA)
在执行Hibernate快速入门——易百教程的程序时遇到了一些错误。错误1: java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException解决方法:将jaxb.jar加入到工程的lib中,下载地址 http://www.java2s.com/Code/Jar/j/jaxb.htm错误2:教程中HibernateUtils类代...
2018-10-13 11:17:03 783
转载 SQL约束的作用
SQL 约束用于规定表中的数据规则,如果存在违反约束的数据行为,行为会被约束终止。约束可以在创建表时规定(通过 CREATE TABLE 语句),或者在表创建之后规定(通过 ALTER TABLE 语句)。SQL CREATE TABLE + CONSTRAINT 语法:CREATE TABLE table_name( column_name1 data_type(size) ...
2018-10-02 16:56:15 3194
转载 [转]结合源码浅析Struts2与Spring整合的原理
转载文章,原文地址:https://www.cnblogs.com/waychan/p/4735187.html 文章的结构如下:一、回顾Struts2与Spring整合的配置方法二、(重点)对关键配置的分析--------------------------------------------------------一、回顾Struts2与Spring整合的配置方法1...
2018-10-01 10:28:19 273
转载 [转]浅谈IOC
博文目录1.IOC的理论背景2.什么是IOC3.IOC也叫依赖注入(DI)4.IOC的优缺点5.IOC容器的技术剖析6.IOC容器的一些产品7.参考博文本文旨在用语言(非代码)说清楚IOC到底是什么,没有什么高深的技术,园中的老牛、大虾们看到这里可以绕行了,以免浪费您宝贵的时间。IOC这个东西DebugLZQ早就想写了,但是出于对文章权威性的考虑(不能误人子弟- -...
2018-09-30 12:35:33 165
转载 [转]谈谈对AOP的理解 一——认识AOP
前几篇博客我们说了JAVA的代理模式,从静态代理到动态代理,又到CGLIB代理。从静态代理到动态代理是一种进步,JDK的动态代理和CGLIB的代理,却是各有优缺点,在使用过程中,不是非要决出个胜负,根据不同的情景,使用不同的代理;也可以根据情况,两者结合使用,代码是我们写出来的,我们才是创造者,知其然,知其所以然,然可用之。 一、AOP 这篇博客,我们说说java的A...
2018-09-30 12:32:05 367
原创 使用IDEA学习Struts2框架 (二)Action与Form表单处理
1. Action类Action类在MVC模式中发挥着控制器(Controller)的作用。Action类响应用户的动作,执行业务逻辑或调用其他类来执行业务逻辑,然后返回一个result用来告诉Struts应该呈现哪个视图。Struts2的Action类常常继承由Struts2框架提供的ActionSupport类,该类提供了一些常见动作的默认实现,如execute、input等,还实现了一...
2018-05-13 19:57:03 3503
原创 使用IDEA学习Struts2框架 (一)Struts2入门-HelloWorld应用
作为一个刚学习完JavaWeb必要储备知识的人,早已经急不可耐地想要学习运用MVC设计模式的Web框架了。目前Java的三大框架仍然是ssh(Struts、Spring、Hibernate),而struts2对于struts1的一些缺点进行了改进,那么本着了解MVC设计模式和基础web框架学习的目的,开始学习struts2。开发工具IDEA(没有用过Eclipse,但是已经习惯了IDEA,就不改了...
2018-05-11 16:38:48 5651 6
原创 Tomcat与JavaWeb 11.0 过滤器
在一个Web应用中,每一个Web组件都用于响应特定的客户请求,不过,在这些Web组件响应客户请求的过程中,可能都会完成一些相同的操作。比如都要先检查客户的的IP地址是否位于预定义的拒绝IP地址范围内,如果满足这一条件,就直接向客户端返回拒绝响应客户请求的信息,而不会继续执行后续操作。如果在多个Web组件中编写完成相同操作的程序代码,显然会导致重复编码,从而降低开发效率和软件的可维护性。为了解决上述...
2018-05-03 20:33:56 441
原创 Tomcat与JavaWeb 10.1 简单标签SimpleTag和.tag标签文件的使用
Ch8中我们学习了传统的自定义标签的开发方法,在传统的自定义标签的主体中可以包含Java程序片段,但是标签的处理流程比较复杂,开发人员需要考虑标签处理类中的doStartTag()和doEndTag()等方法的返回值。为了简化开发标签的过程,JSP2.0 中引入了一种新的标签扩展机制,称为“简单标签扩展”,这种机制有两种使用方式:对于熟悉Java编程语言的开发人员,可以定义实现javax.serv...
2018-04-11 19:05:12 881
原创 Tomcat与JavaWeb 9.0 JSTL标签库简介
自定义JSP标签时用来替代JSP中的Java程序片段的有效途径。大多数Web应用的JSP文件常常要实现一些通用的功能,比如重定向、文件包含、对日期和时间进行格式化输出,以及访问数据库等,此外,这些JSP文件还要实现一些通用的流程控制逻辑,比如用if-else语句来进行条件判断,在比如用while语句或for语句进行循环操作。为了提高Web应用的开发效率,SUN公司制定了一组标准标签库的规范,这组标...
2018-04-11 14:16:24 2791
原创 Tomcat与JavaWeb 8.2 自定义标签的创建和使用(二)重复执行标签主体、访问标签主体内容
1. 创建和使用iterate标签(重复执行标签主体)JSP网页中经常需要显示集合中的批量数据。我们曾使用"<%%>"形式的Java程序片段的for循环等来完成这种功能。下面将创建一个iterate标签,它能完成和Java程序片段的循环类似的功能。下面例程的iterate.jsp中就通过iterate标签来遍历books集合中的所有元素。使用iterate标签可以使JSP代码更加...
2018-04-04 18:06:59 279
原创 Tomcat与JavaWeb 8.2 自定义标签的创建和使用(一)访问标签属性
1. 创建和使用message标签(访问标签属性)在JSP文件中会包含许多静态文本,例如以下hello0.jsp中的“helloapp”"Nice to meet you:"都是静态文本:<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> &am
2018-04-04 14:29:22 707
原创 Tomcat与JavaWeb 8.1 自定义JSP标签及其主要接口、类介绍
1. 自定义标签简介JSP标签包括以下几种形式。主体内容和属性都为空的标签,例如:<mm:hello/>包含属性的标签,例如: <mm:message key="hello.hi"/>包含主体内容的标签,例如<mm:greeting>How are you?</mm:greeting>。 其中<mm:greeting>称为标签的起始...
2018-04-03 14:00:10 502
原创 Tomcat与JavaWeb 7.2 EL函数、Ch7小结
1. 定义和使用EL函数EL表达式语言可以访问El函数。EL函数实际上与Java类中的方法对应,这个Java类必须定义为public类型,并且作为函数的方法必须声明为public static类型。当Java类定义好以后,应该在标签库描述符(TLD)文件中,把Java类的方法映射为函数。为了演示函数的使用,这里举一个简单的定义和使用函数的例子。在以下例程的Tool.java中定义了两个静态方...
2018-04-02 18:09:11 190
原创 Tomcat与JavaWeb 7.1 EL表达式语言
EL(Expression Language)表达式语言是在JSP2.0版本中引入的新特性,它用于JSP文件中的数据访问。这种表达式语言能简化JSP文件中数据访问的代码,可用来代替传统的基于"<%="和"%>"形式的Java表达式,以及部分基于"<%"和"%>"形式的Java程序片段。例如以下代码包含了传统的Java程序片段和Java表达式,它们用于显示会话范围内的属性名为
2018-04-02 16:26:37 389
原创 Tomcat与JavaWeb 6.1 JavaBean与JSP
1. JavaBean简介JavaBean是一种可重复使用且跨平台的软件组件。可分为两种:一种是又用户界面的JavaBean,还有一种没有用户界面,主要负责表示业务数据或者处理事务(如数据运算、操纵数据库)的JavaBean。JSP访问的通常是后一种JavaBean。JSP与JavaBean搭配使用的好处: 使得HTML与Java程序分离,这样便于维护代码。如果把所有的程序代码都写到JSP网...
2018-04-02 14:45:29 302
原创 Tomcat与JavaWeb 5.3 HTTP会话的监听-HttpSessionListener等
在Servlet API中定以了4个用于监听会话中的各种时间的监听器接口。1. HttpSessionListener接口:监听创建会话及销毁会话的时间,它有如下两个方法。sessionCreate(HttpSessionEvent event),当容器创建一个会话后,会调用此方法。sessionDestroyed(HttpSessionEvent event),容器销毁一个会话之前,会调用...
2018-03-30 17:20:36 558
原创 Tomcat与JavaWeb 5.2 会话的跟踪和持久化
1. 通过重写URL来跟踪会话前面讲过,Servlet容器在客户端浏览器中保存一个Session ID,以后再浏览器发出的HTTP请求中就会包含这个Session ID。Servlet容器读取HTTP请求中的Session ID,就能判断出来自各个浏览器进程的HTTP请求属于哪个会话。这一过程也成为会话的跟踪。如果浏览器支持Cookie,Servlet容器就把Session ID作为Cook...
2018-03-30 14:04:30 286
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人