- 博客(48)
- 收藏
- 关注
原创 跟着狂神学JVM
轻GC过后,若新生区和其中一个幸存区仍无法存放新对象,这时就尝试把对象移到老年区,若老年区也无法存放,这时就会触发重GC。当类加载器收到类加载请求,会将这个请求向上委托给父类加载器去完成,一直向上委托,直到启动类加载器,启动类加载器会检查是否能够加载当前这个类,能加在就结束,使用当前的加载器,否则抛出异常通知子加载器进行加载。如果新对象在创建时,因为新生区内存已满而无法创建时,这时就会发生一次轻GC,把新生区和幸存0区中的存活对象移到幸存1区,并将其他对象清除。现在来看,当年使用永久代,不是好的idea。
2023-05-30 20:10:18
246
翻译 Redis-10天
2、memcached(缓存)+mysql+ 垂直拆分(读写分离)MyISAM:表锁,效率低,高并发下出现严重锁问题。3、分库分表+水平拆分+MySql集群。本质:数据库(读,写)
2023-03-21 20:31:00
110
原创 软件测试(三)--性能测试
软件测试 之 性能测试工具:模拟器Jmeter、LoadRunner(模拟APP、模拟小程序、模拟web等各种终端)性能:软件质量特性衡量性能的两个标准:响应时间(响应快不快)并发量(能够同时让多少人去访问)性能测试类型:服务器接口性能测试占比80%+20%(UI web渲染、App放应)**什么事性能测试:**性能测试也是软件测试的一种,它的主要方向是测试系统在一定的负荷下,系统的响应时间,吞吐量、稳定性,系统单可扩展行等性能指标**基本目的:**验证是否达到用户的性能指标;(逐渐加压
2020-09-12 09:44:47
320
原创 软件测试(二)--自动化测试
软件测试 之 自动化测试:提供了自动化测试用例编写、自动化测试用例执行、自动化测试报告生成等基础功能。我们只需要基于这个框架,完成和业务高度相关的测试用例设计和实现即可。另外,框架会为我们处理好复杂度与扩展性的问题,我们无需为此操心。自动化测试主流框架:有selenium、ATF、watir、Robot Framework、QTP...
2020-09-12 09:06:42
147
1
原创 软件测试(一)--测试用例
测试开发工程师的职责:测试开发工程师的主要工作内容是根据项目的特点来开发一些测试工具,从而能够更有效地进行测试,提高软件产品的质量,质量!核心目标:尽早、尽快、尽可能多地发现软件缺陷促进软件质量与客户满意度的提升测试用例的设计方法(由上到下递进):1)等价类划分法:将无穷的测试输入变成有限的输入。如(有效、无效(负数、特殊字符、小数点…))2)边界值法:从划分的等价类里面选取边界数据的方法3)因果图法:考虑输入数据之间的组合关系(在产生了有效条件以后,进行组合)4)用户故事法:5)错误推
2020-09-11 11:26:33
1576
原创 数据库 DDL(数据库定义语言),三范式
表创建表:/*CREATE TABLE [schema.]table (column datatype [DEFAULT expr] , … );*/--设计要求:建立一张用来存储学生信息的表,表中的字段包含了学生的学号、姓名、年龄、入学日期、年级、班级、email等信息,--并且为grade指定了默认值为1,如果在插入数据时不指定grade得值,就代表是一年级的学生create table student(stu_id number(10),name varch...
2020-08-30 15:16:36
169
原创 Oracle 行转列练习
中国移动sql面试题:create table test(id number(10) primary key,type number(10) ,t_id number(10),value varchar2(5));insert into test values(100,1,1,‘张三’);insert into test values(200,2,1,‘男’);insert into test values(300,3,1,‘50’);insert into test values(10
2020-08-28 15:30:45
267
原创 MySQL事务隔离级别测试详解
mysql事务测试需要知道的前提:在同一个事务里,不管读取多少次,读到的内容应该是一致的。commit\rollback结束事务。准备A、B两个事务,隔离级别一致1、打开mysql的命令行,将自动提交事务给关闭--查看是否是自动提交 1表示开启,0表示关闭select @@autocommit;--设置关闭set autocommit = 0;2、数据准备--创建数据库create database tran;--切换数据库 两个窗口都执行use tran;--准备数据 cre
2020-08-28 10:58:16
415
原创 数据库的事务--学习笔记
–事务:表示操作集合,不可分割,要么全部成功,要么全部失败–事务的开始取决于一个DML语句/*事务的结束1、正常的commit(使数据修改生效)或者rollback(将数据恢复到上一个状态,将缓存中的数据清空)2、自动提交,但是一般情况下要将自动提交进行关闭,效率太低3、用户关闭会话之后,会自动提交事务4、系统崩溃或者断电的时候回回滚事务,也就是将数据恢复到上一个状态*/insert into emp(empno,ename) values(2222,'zhangsan');--co.
2020-08-28 10:11:38
101
原创 赛码答题系统 输入输出知识总结-Scanner
在答题系统里有这样一段话,大家要注意:使用Java语言请注意,不要自定义包名称,否则会报错,即不要添加package answer之类的语句;您可以写很多个类,但是必须有一个类名为Main,并且为public属性,并且Main为唯一的public class,Main类的里面必须包含一个名字为’main’的静态方法(函数),这个方法是程序的入口。(开始对这句话完全忽略,最后导致编译过不了,所以要记着,main方法要放到public Class Mian类中,不要自己起名字)之后我们就要无比认真的去看它
2020-08-27 11:53:01
1778
4
原创 Oracle 数据库 多表连接--学习笔记
92语法–关联查询/*select t1.c1,t2.c2 from t1,t2 where t1.c3 = t2.c4在进行连接的时候,可以使用等值连接,可以使用非等值连接*/–等值连接,两个表中包含相同的列名–非等值连接,两个表中没有相同的列名,但是某一个列在另一张表的列的范围之中–查询雇员的名称和部门的名称select ename,dname from emp,dept where emp.deptno = dept.deptno;–等值连接–查询雇员名称以及自己的薪水等级se
2020-08-25 11:03:24
270
原创 Oracle 数据库 oracle函数
--字符函数--concat:表示字符串的连接 等同于||select concat('my name is ', ename) from emp;--将字符串的首字母大写select initcap(ename) from emp;--将字符串全部转换为大写select upper(ename) from emp;--将字符串全部转换为小写select lower(ename) from emp;--填充字符串select lpad(ename,10,'*') from emp...
2020-08-25 11:03:11
141
原创 Oracle 数据库 语句学习
常用数据库类型:Oracle数据库:连接数据库:方法一:在cmd中连接数据库:sqlplus /nologconn scott/tiger@orcl;select * form emp;方法二:利用PLSQL连接数据库(1:25左右)SQL(结构化查询语句Structured Query Language)运行SQL语句的窗口:new–SQL WINDOWE 或者COMMEND WINDOWE...
2020-08-24 15:57:25
195
原创 Java lambda表达式---函数式编程
lambda表达式定义:lambda表达式特征:lambda表达式应用场景:任何有函数式接口的地方,只有一个方法(Object类中的方法除外)的接口是函数式接口,用@FunctionalInterface来检验是不是函数式接口内置函数式接口:以Function为例: Function<String,Integer> f1 = (str)->{return str.length();}; System.out.println(f1.apply("abcdefg"
2020-08-20 12:01:39
286
原创 Java 基于TCP、UDP的网络编程
实现允许客户端想服务器发送一条简单的消息测试时先要启动服务端,要先把服务端开着package com.mashibing.client;import java.io.DataOutputStream;import java.io.IOException;import java.io.OutputStream;import java.net.Socket; *//** 客户端向服务端发送数据* */public class Client { public static v...
2020-08-19 17:01:00
162
原创 Java 多线程之线程池--学习笔记
线程池存在的原因线程池分类:线程池执行器、可调度线程池执行器,"分而治之"ThreadPoolExecutor的三个实现子类:(以下三个子类虽然功能不同但是其实都是利用ThreadPoolExecutor来创建线程池的)newCachedThreadPool:创建一个可根据需要创建新线程的线程池,但是在以前构造的线程可用时将重用他们,并在需要时使用提供的ThreadFactory创建新线程特征:1.线程池中数量没有固定,可达到最大值(Integer.MAX.VALUE)2.线程池中的线
2020-08-18 21:39:09
149
原创 Java 多线程+生产者消费者模型---学习笔记
实现多线程的时候:1、需要继承Thread类2、必须要重写run方法,指的是核心执行的逻辑3、线程在启动的时候,不要直接调用run方法,而是要通过start()来进行调用4、每次运行相同的代码,出来的结果可能不一样,原因在于多线程谁先抢占资源无法进行人为控制第二种实现方式:使用了代理设计模式(启动线程方式不同)1、实现Runnable接口2、重写run方法3、创建Thread对象,将刚刚创建好的runnable的子类实现作为thread的构造参数4、通过thread.start(...
2020-08-18 10:28:55
338
原创 Java 多线程---初识之擦除不开心
在老师介绍了飞机大战原型(简单的子弹发射功能)后,也算是初步对多线程有了一个认识。然后学习着自己做了这样一个擦掉不开心小程序?图片?gif?有一些小的心得需要记录下,这里感谢小王的友情出演~效果如下:...
2020-08-11 16:51:09
136
原创 Java I/O流+代码理解
File类File类的一些API方法:import java.io.File;import java.io.IOException;/** * File提供了对当前文件系统中文件的部分操作 */public class FileDemo { public static void main(String[] args) throws IOException { File file = new File("src/abc.txt"); //创建文件
2020-08-11 15:55:52
127
1
原创 Java Collections工具类 Arrays工具类
CollectionsCollection 与 Collections的区别:1、java.util.Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└Set2、java.util.Collections 是一个
2020-08-10 11:05:57
95
原创 Java 集合框架(二)Map
Map接上一个博客有关Collection集合框架,对集合中另一个接口Map进行介绍,先来一张图回顾一下关系map存储的是k-v键值对映射的数据Map子类:HashMap:数据+链表(1.7) 数组+链表+红黑树(1.8)LinkedHashMap:链表TreeMap:红黑树基本api操作:增加: put(k,v) 添加元素查找: isEmpty 判断是否为空size 返回map的大小containsKeycontainsValueget删除:
2020-08-10 10:34:58
69
原创 Java 集合框架(一)Collection
Java 集合框架(容器)为什么使用集合框架:如果并不知道程序运行时会需要多少对象,或者需要更加复杂的方式存储对象,可以使用JAVA集合框架。java集合框架提供了一套性能优良、使用方便的接口和类,可以分为以下两类,如下图所示。均位于工具包java.util包中Collection接口中存放的是单一的值Map接口中存放的是键值对k-vjava集合框架:特点:1、可以存放不同类型的数据,而数组只能存放固定类型的数据2、当使用arraylist子类实现的时候,初始化的长度是10,当长度不够的时
2020-07-31 21:59:10
104
原创 Java 泛型举例详解
泛型当做一些集合的统一操作的时候,需要保证集合的类型是统一的,此时需要泛型来进行限制优点:1、数据安全2、获取数据时效率比较高给集合中的元素设置相同的类型就是泛型的基本需求使用:在定义对象的时候,通过<>中设置合理的类型来进行实现.不满足<>中要求的类型,无法存入泛型的高阶应用:1、泛型类在定义类的时候在类名的后面添加<E,K,V,A,B>,起到占位的作用,类中的方法的返回值类型和属性的类型都可以使用。就是当我们不确定返回值和属性类型是可以定义为泛型,
2020-07-27 22:27:50
397
转载 Java 常用类
包装类包装类(eg:Interger,Double,Float…)与基本数据类型包装类是将基本数据类型封装成一个类,包含属性和方法使用:在使用过程中,会涉及到自动装箱和自动拆箱装箱:将基本数据类型转换成包装类,如Interger.valueOf—将int类型变成Interger类型拆箱:将包装类转换成基本数据类型,如i.intValue----将Interger转为int类型public class IntegerDemo { public static void main(St
2020-07-24 21:06:28
65
转载 Java 内部类 异常
内部类(当作类中的一个普通成员变量,只不过此成员变量是class的类型):一个java文件中可以包含多个class,但是只能有一个public class如果一个类定义在另一个类的内部,此时可以称之为内部类使用:创建内部类的时候,跟之前的方法不一样,需要在内部类的前面添加外部类来进行修饰InnerClassDemo.InnerClass inner = new InnerClassDemo().new InnerClass();特点:1、内部类可以方便的访问外部类的私有属性2、外部类不能访问
2020-07-20 19:19:10
820
原创 Java 关键字:this、static、super、final、abstract
this 关键字:this表示的是当前对象本身, 更准确地说,this代表当前对象的一个引用。▪ 普通方法中使用this。– 区分类成员属性和方法的形参.– 调用当前对象的其他方法(可以省略)– 位置:任意▪ 构造方法中使用this。– 使用this来调用其它构造方法– 位置:必须是第一条语句▪ this不能用于static方法。static 关键字在类中,–用static声明的成员变量为静态成员变量 ,或者叫做: 类属性,类变量.可以使用对象名调用,也可以使用类名直接调用(普
2020-07-12 11:52:42
187
原创 JAVA 面向对象三大特征:继承、封装、多态
封装:▪ 面向对象三大特征之一 ——封装,将类的某些信息隐藏在类内部,不允许外部程序直接访 问,而是通过该类提供的方法来实现对隐藏信息的操作和访问封装的好处:1、隐藏类的内部实现细节2、只能推过提供的方法进行访问3、可以根据需求添加 复杂的逻辑判断语句4、方便修改实现面向对象的封装(狭义)可以用一句话概述:讲类中的属性设置为私有,提供共有的外部方法供程序进行调用,可以实现丰富细节操作广义的封装:可以讲完成特定功能的代码块封装成一个方法,供不同的程序进行调用高内聚,低耦合:高内聚:类
2020-07-10 22:06:26
131
转载 叮叮 算法数据结构(一)
评估算法优劣的核心指标:1.时间复杂度:何为常数时间的操作:如果一个操作的执行时间不以具体样本2.额外空间复杂度:3.算法常数项时间:认识对数器:JAVA随机数组产生器:Math.random() --> [0,1)Math.random()*N -->[0,N)(int)Math.random()*N -->[0,N]认识二分法:时间复杂度O(log2N)...
2020-06-09 09:50:18
156
原创 JAVA 缓存绘图
BufferedImage buffer = new BufferedImage(1000,600,BufferedImage.TYPE.INT.ARGB);//获取缓存画布Graphics bufferG = buffer.getGraphics();之后把所有画图内容都画到bufferG上最后绘制缓存图片到窗体上(g为原窗体)g.drawImage(buffer,0,0,null)...
2020-06-07 17:29:20
176
原创 JAVA L-System代码及解析
首先来看看最终效果,如果是你需要那就继续来看代码的实现过程吧:在这项程序中,主要创建了三个类,分别是:定义替换规则和绘图的类:Koch;监听器(拉杆监听器):Listener界面:UI在Koch中主要涉及两个方法:方法defineString实现字符替换,方法drawF实现根据绘图规则绘图,代码如下(这里是有关实现上述内容用到的所有代码,所以有需要的小伙伴可以直接复制看一下效果,应该改一下包名就可以。):package LSystem;import java.awt.Graphics;p
2020-06-06 11:13:58
294
原创 JAVA 构造方法的理解
构造方法定义:是写在类中的一种特殊的“成员方法”,它是在类构造对象时要使用的方法,通过这一方法实现对对象的初始化。我们在创建对象时,等号右边new后边的内容便是该类的构造方法(如:new Person(12))。 但是像之前写的一些类,我们并未加入构造方法,这样的情况下,系统会自动添加无参构造方法(如:new Person()).格式:访问权限 类名(参数类型 参数名,……){方法体。}注意:1.构造方法的方法名必须与类名一样。2.构造方法没有返回类型,也不能定义为void,在方法名前面
2020-06-04 13:53:52
230
原创 JAVA UI/画图板要注意的事
在创建好窗体后,必须设置窗体可见:uiframe.setVisible(true);且Graphics指令必须在窗体可见后使用。对关闭窗口的操作uiframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JSliderhttps://blog.csdn.net/xietansheng/article/details/74363768布局参考:https://blog.csdn.net/weixin_41792162/article/detai
2020-06-04 11:01:47
147
转载 JAVA 循环结构学习笔记
循环结构:1、while 先进行判断,再进行逻辑执行需要四部分组成初始化:变量的初始化条件判断:必须要求返回true或者false的值循环体:具体的要执行的逻辑代码迭代变量:促使此循环结构while(true)死循环,循环永远 不会结束,除非遇到break,return举例:求1000以内的奇数和public class Demo { public static void main(String[] args){ int i = 0; //求和最终的存储变量
2020-06-02 18:18:44
119
原创 JAVA 接口的理解和实现
定义:接口是JAVA中一些抽象方法的集合,其关键字为:interface,只由抽象方法和全局常量组成,而这些方法并没有方法体。也正是因为接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)格式:public interface 接口名{ }接口中属性格式:[public static final] 属性类型 属性名 = 属性初始值;static: 静态的,修饰的内容,可以通过类名/接口名直接访问。final: 不可改变的,修饰
2020-06-02 14:28:03
136
原创 JAVA 继承(理解+实例)
继承:当多个类存在相同属性和行为时,可以将这些相同的内容定义到单独的一个类中,那么这多个类没有必要再定义这些属性和行为,只需要继承这个单独的类就好了,这就是继承。进一步解析:说到继承关系,首先涉及到父类和子类两个概念,子类拥有父类所有的方法、属性,但不限于此,例如学生和大学生,学生作为父类,拥有姓名、学号、性别、学习等属性及方法,大学生同样具有这些内容,但还有着学生所有属性方法以外的内容,如学院、专业。继承的实现JAVA 中让一个子类继承父类的属性和方法,用到的关键字为:extends格式为:pub
2020-06-01 17:57:48
290
原创 JAVA 零散笔记(多看看哦)
Scanner类(超重要的一个类,下边是小小小小一个使用举例)三目运算的妙用(在判断是男是女用到了三目运算,觉得很巧妙,random的用法也很值得学习,Math.random的范围为[0,1),要生成一个0或者1的随机数,用random*2并进行强制转化)switch的一些说明...
2020-05-30 22:38:10
83
原创 JAVA 递归绘制谢尔宾斯基三角形
我的歇尔宾斯基三角形是在一个绘图板中作为一个类被调用的,下边是它的具体代码:import java.awt.Graphics;public class Sierpinski { //d为等边三角形边长,x,y为最外边正三角形左下角点的坐标 public void drawtriangle(Graphics g,int d,int x,int y) { //画第一个三角形 g.drawLine(x, y, x+d, y); g.drawLine(x+d, y, x+d/2, y-(
2020-05-30 20:29:44
501
原创 JAVA 迭代计算斐波拉契数列
public class Fibonacci { public int calculate (int n) { if(n==1) { return 1; }else if (n==2) { return (n-1); }else { //迭代计算 return calculate(n-1)+calculate(n-2); } } //计算第八位时的斐波拉契数 public static void main(String[] args) { Fi
2020-05-29 19:53:32
141
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人