自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 收藏
  • 关注

原创 图片服务器项目测试用例

图片服务器项目测试界面布局1,图片比较多时,每一行最多五张图片,剩下的折行展示2,每张图篇的大小一一致,都是200px*200px3,每一张图片都在一个div框里面,图片左下角有图片名称,删除按钮4,每一页最上面是logo,标题,接下来右边是图片上传按钮,最后一部分展示的是已经上传到服务器上的图片。文字的测试(标题,图片名称,按钮名称)字体的大小展示的位置字体是否成功展示页面上图片文件的名称是否按照设置的大小,字体形式展示是否和需求一致图片图片是否完全展示,即上传的图片和展示的图

2021-07-29 22:48:14 528 2

原创 图片上传服务器系统说明

数据库设计drop database if exists drawing_bed;create database drawing_bed character set utf8mb4;use drawing_bed;drop table if exists image_table;create table image_table(image_id int not null primary key auto_increment,image_name varchar(50),size bigint,

2021-07-29 22:28:35 523

原创 抽象类和接口区别

抽象类和接口区别抽象类和接口的定义:抽象类(abstract class):使用abstract修饰符修饰的类。(如果一个类没有包含足够多的信息来描述一个具体的对象,这样的类就是抽象类。)实际点来说,一个抽象类不能实例化,因为“没有包含足够多的信息来描述一个具体的对象”。但仍然拥有普通类一样的定义。依然可以在类的实体(直白点就是能在{}里面)定义成员变量,成员方法,构造方法等。抽象方法:只声明,不实现。具体的实现由继承它的子类来实现。实际点就是:被abstract修饰的方法,只有方法名没有方法实现

2021-07-28 23:49:39 238

原创 什么是MVCC?MVCC解决了什么问题?

什么是MVCCMVCC(Multi Version Concurrency Control的简称),代表多版本并发控制。MVCC最大的优势:读不加锁,读写不冲突。读写不冲突是非常重要的,极大的增加了系统的并发性能。MVCC机制也是乐观锁的一种体现。InnoDB的MVCC是通过在每行记录后面保存两个隐藏的列来实现的,分别保存这条行的创建时间和行的删除时间。这里的时间并不是实际的时间值,而是系统版本号(事务的ID)。每开始一个新的事务系统版本号都会自动递增,事务开始时刻的系统版本号会作为事务的版本号,用来

2021-07-28 23:47:08 7362

原创 面试官问我:饿汉模式,懒汉模式线程安全吗?我用这个直接绝杀!

饿汉模式:上来不管三七二十一直接创建对象再说。饿汉模式创建方式:1.先创建一个私有的构造函数(防止其它地方直接实例化)2.定义私有变量3.提供公共的获取实例的方法public class Single { //饿汉模式 //先创建一个表示单例的类 static class Singleton { //创建一个无法在该类外部实例化的私有构造方法 private Singleton(){}; //创建一个stati

2021-06-24 23:58:51 4024 6

原创 线程安全问题?synchronized 和 volatile 来解决

线程安全问题;public class ThreadDemo { private static class Counter { private long n = 0; public void increment() { n++; } public void decrement() { n--; } public long value() { ...

2021-06-23 23:01:59 116 3

原创 【JVM】JVM组成和垃圾回收机制,看完就悟!

目录JVM布局(HotSpot)(如何组成):JDK1.8 1.堆(线程共享) 2.JVM栈(Java虚拟机栈)(线程私有) 3.本地方法栈(线程私有) 4.程序计数器(线程私有) 5.元空间(JDK1.8)(线程共享)JVM类加载机制(ClassLoading):双亲委派模型:垃圾回收:1.判别死亡对象(垃圾)2.垃圾回收的算法:3.垃圾收集器:Serial收集器(新生代收集器,串行GC)ParNew收集器(新生代收...

2021-06-03 17:27:28 132 1

原创 【多线程】手把手教你写出生产者消费者模型

生产者消费者模型 -生产者队列满的时候休眠 -消费者队列空的时候休眠 -链表/数组实现自定义阻塞队列import java.util.Random;/*** Created by JiaLe on 2021/5/25 21:02*/public class Single6 { static class MyBlockingQueue{ private int[] values;//实际存储数据的数组 private in...

2021-05-30 21:54:36 87

原创 【多线程】一文悟到多线程单例模式!

提高程序的性能的方法:(1)多线程(2)单例模式单例模式:在整个程序的(生命周期)运行中只存在一个对象1.饿汉方式:上来不管三七二十一直接创建对象再说(不用加锁也是线程安全的)public class Single {//饿汉方式static class Singleton {//1.先创建一个私有的构造函数(防止其它地方直接实例化)private Singleton() {}...

2021-05-30 21:50:48 84

原创 【多线程】初识线程池,我悟了!

线程池的重点内容: 线程池的优点 线程池的七种创建方式 ThreadPoolExecutor(线程数不可控,任务数不可控) ThreadPoolExecutor七个参数顺序和参数说明 核心线程数 最大线程数 生存时间 时间单位 任务队列 线程工厂(优先级命名类型) 拒绝策略 ThreadPoolExecutor执行流程 ThreadPo...

2021-05-30 21:43:13 95

原创 【Java每日一练】day18_ 5月8日_错题总结

动态规划做法:用最长公共子序列来求的,就是求通配符串和给定的串的最长公共子序列长度,最后用这个长度和通配符串去掉通配字符后 的长度做对比,如果相等则输出true,否则false递归做法:递归遍历两个字符串(c1,c2作为遍历的下标)每次遍历对应的字符有多种可能的情况当同时遍历结束时,返回true,其中一个提前结束遍历就返回false(1)下标对应的字符相等c1+1,c2+1(2)通配符字符串下标对应的字符为‘?’c1+1,c2+1(3)通配符字符串下标对应的字符为‘*

2021-05-30 21:08:45 156 3

原创 【Java每日一练】day17_ 5月7日_错题总结

以下哪项是类实例化的语句? A varName ClassName=new varName(); B ClassName varName=new ClassName(new ClassName); C ClassName varName=ClassName(); D ClassName varName=new ClassName(); 他的回答: D (正确) 正确答案: D 类名 变量名= new 类名(); 由此可知B、C错误ClassnName是类名,varNa..

2021-05-12 21:49:16 237

原创 【多线程】多线程(一)

【多线程】多线程(一)1. 线程(Thread)1.1 概念进程是系统分配资源的最小单位,线程是系统调度的最小单位。一个进程内的线程之间是可以共享资源的。每个进程至少有一个线程存在,即主线程。1.2 创建线程的方法1.3 多线程的优势-增加运行速度提高CPU的利用率,更好地利用系统资源,使用Monitor类可以同步静态/实例化的方法的全部代码或者部分代码段,使用不同的同步类创建自己的同步机制。多线程的好处提高CPU的利用率。在多线程程序中,一个线程必须等待的时候,CPU可以运

2021-05-12 14:38:21 86

原创 【多线程】创建线程方法

创建线程方法常见的创建线程的方法有三类六种1. 继承Thread类来实现线程的创建(2种创建方式)继承Thread类创建线程的缺点: Java 只能实现单继承,如果该类继承了Thread类,也就无法继承其他类。方法一:public class ThreadDemo2 { static class MyThread extends Thread { @Override public void run() { S...

2021-05-12 14:11:39 56

原创 【Java每日一练】day16_ 4月29日_错题总结

如果希望监听TCP端口9000,服务器端应该怎样创建socket? A new Socket("localhost",9000); B new ServerSocket(9000); C new Socket(9000); D new ServerSocket("localhost",9000); 他的回答: D (错误) 正确答案: B ServerSocket(int port) 是服务端绑定port端口,调accept()监听等待客户端连接,它返回一个连接队列中..

2021-05-11 21:27:04 231 1

原创 【Java每日一练】day15_ 4月28日_错题总结

用命令方式运行以下代码的运行结果是()public class f{ public static void main(String[] args){ String foo1 = args[1]; String foo2 = args[2]; String foo3 = args[3]; }}命令: java f a b c A 程序编译错误 B a b c C 程序运行错误 D f 他的回答: A (错误) ...

2021-05-10 22:19:45 385 3

转载 【笔记】Java类加载过程

类加载过程类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading)7个阶段。其中准备、验证、解析3个部分统称为连接(Linking)。如图所示。加载、验证、准备、初始化和卸载这5个阶段的顺序是确定的,类的加载过程必须按照这种顺序按部就班地开始,而解析阶段则不一定:它在某些情况下可以在初

2021-05-10 21:34:03 81

原创 【Java每日一练】day14_ 4月27日_错题总结

下列哪些语句关于内存回收的说明是正确的? ( ) A 程序员必须创建一个线程来释放内存 B 内存回收程序负责释放无用内存 C 内存回收程序允许程序员直接释放内存 D 内存回收程序可以在指定的时间释放内存对象 他的回答: B (正确) 正确答案: B 下列语句正确的是: A 形式参数可被字段修饰符修饰 B 形式参数不可以是对象 C 形式参数为方法被调用时真正被传递的参数 D 形式参数可被视为local variable 他的回答: B (错误) 正.

2021-05-10 11:44:00 211

原创 【Java每日一练】day13_ 4月26日_错题总结

.

2021-05-09 19:42:15 275

原创 【Java每日一练】day12_ 4月24日_错题总结

在Java中,( )类提供定位本地文件系统,对文件或目录及其属性进行基本操作 A FileInputStream B FileReader C FileWriter D File 他的回答: D (正确) 正确答案: D 下面程序的运行结果是 String str1 = "hello"; String str2 = "he" + new String("llo"); System.err.println(str1 == str2);A tr...

2021-05-08 14:43:24 1383

原创 【多线程】操作系统进程线程

【多线程】操作系统进程线程1. 冯诺依曼体系结构我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。截至目前,我们所认识的计算机,都是有一个个的硬件组件组成输入单元:包括键盘,鼠标,扫描仪,写板等 中央处理器(CPU):含有运算器和控制器等 输出单元:显示器,打印机等关于冯诺依曼,必须强调几点:这里的存储器指的是内存 不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备) 外设(输入或输出设备)要输入或者输出.

2021-05-07 21:38:51 109

原创 【Java每日一练】day11_ 4月23日_错题总结

以下java程序代码,执行后的结果是()java.util.HashMap map=new java.util.HashMap(); map.put("name",null); map.put("name","Jack"); System.out.println(map.size()); A 0 B null C 1 D 2 他的回答: D (错误) 正确答案: CHashMap可以插入null的key或value,插入的时候,检查是否已经...

2021-05-07 15:39:42 398 1

原创 【Java每日一练】day10_ 4月22日_错题总结

结构型模式中最体现扩展性的模式是() A 装饰模式 B 合成模式 C 桥接模式 D 适配器 他的回答: C (错误) 正确答案: A 下列Java代码中的变量a、b、c分别在内存的____存储区存放。 class A { private String a = “aa”; public boolean methodB() { String b = “bb”; final String c = “cc”; } }A...

2021-05-07 15:19:23 161 1

原创 成员变量、局部变量、静态变量三者的区别

成员变量和局部变量的区别 成员变量: ①成员变量定义在类中,在整个类中都可以被访问。 ②成员变量随着对象的建立而建立,随着对象的消失而消失,存在于对象所在的堆内存中。 ③成员变量有默认初始化值。 局部变量: ①局部变量只定义在局部范围内,如:函数内,语句内等,只在所属的区域有效。 ②局部变量存在于栈内存中,作用的范围结束,变量空间会自动释放。 ③...

2021-05-07 15:02:20 901

原创 【JavaWeb学习笔记】TCP/IP 协议(三)

3.2 网段划分IP地址分为两个部分, 网络号和主机号网络号: 保证相互连接的两个网段具有不同的标识; 主机号: 同一网段内, 主机之间具有相同的网络号, 但是必须有不同的主机号;4. 数据链路层...

2021-05-04 10:30:58 213

原创 【Java每日一练】day09_ 4月21日_错题总结

以下多线程对int型变量x的操作,哪个不需要进行同步() A ++x B x=y C x++ D x=1 他的回答: B (错误) 正确答案: D 同步是害怕在操作过程的时候被其他线程也进行读取操作,一旦是原子性的操作就不会发生这种情况。因为一步到位的操作,其他线程不可能在中间干涉。另外三项都有读取、操作两个步骤,而X=1则是原子性操作。关于 JAVA 堆,下面说法错误的是() A 所有类的实例和数组都是在堆上分配内存的 B 对象所占的堆内存是..

2021-04-26 18:39:57 414

原创 【Java每日一练】day08_ 4月20日_错题总结

java中关于内存回收的正确说法是 A 程序员必须创建一个线程来释放内存 B 内存回收程序负责释放无用内存 C 内存回收程序允许程序员直接释放内存 D 内存回收程序可以在指定的时间释放内存对象 正确答案: B 以下说法错误的是()A 数组是一个对象 B 数组不是一种原生类 C 数组的大小可以任意改变 D 在Java中,数组存储在堆中连续内存空间里 正确答案: C main() 函数执行后的输出是()...

2021-04-26 18:12:14 106

原创 【Java每日一练】day07_ 4月19日_错题总结

在使用 interface 声明一个接口时,只可以使用()修饰符修饰该接口 A private B protected C private protected D public 正确答案: D 在使用 interface 声明一个接口时,只可以使用()修饰符修饰该接口 A private B protected C private protected D public 正确答案: D java 语言使用的字符码集是 A ASCII ...

2021-04-23 16:17:56 220

原创 【Java每日一练】day06_ 4月17日_错题总结

下面哪段程序能够正确的实现了GBK编码字节流到UTF-8编码字节流的转换byte[] src,dst;A dst=String.frombytes(src,”GBK”).getbytes(“UTF-8”) B dst=new String (src,”GBK”).getbytes(“UTF-8”) C dst=new String (”GBK”, src,) getbytes() D dst=String.encode(String.decode(src,”GBK”)), “U..

2021-04-21 20:40:41 129 2

原创 【Java每日一练】day05_ 4月16日_错题总结

下面的程序 编译运行后,在屏幕上显示的结果是() public class test { public static void main(String args[]) { int x,y; x=5>>2; y=x>>>2; System.out.println(y); }}A 0 B 2 C 5 D 80 正确答案: A >>>为无符号右移以下代码结果是什么? publ...

2021-04-20 16:58:33 177

原创 【Java每日一练】day04_ 4月15日_错题总结

下面属于黑盒测试方法的是() A 语句覆盖 B 逻辑覆盖 C 边界值分析 D 路径覆盖 正确答案: C 参考答案: 黑盒测试不关心程序内部的逻辑,只是根据程序的功能说明来设计测试用例。在使用黑盒测试法时,手头只需要有程序功能说明就可以了。黑盒测试法分等价类划分法、边界值分析法和错误推测法,答案为 C 。而 A 、 B 、 D 均为白盒测试方法。 java语言的下面几种数组复制方法中,哪个效率最高? A for 循环逐一复制 B System.arraycop..

2021-04-19 19:06:14 146

原创 【Java每日一练】day03_ 4月14日

以下代码运行输出的是 public class Person{ private String name = "Person"; int age=0; }public class Child extends Person{ public String grade; public static void main(String[] args){ Person p = new Child(); System.out.println(p.name); }}

2021-04-18 19:07:45 162

原创 【JavaWeb学习笔记】TCP/IP 协议(二)

TCP/IP 协议(一)TCP/IP 协议(二)2.3 TCP 协议面向字节流粘包问题首先要明确, 粘包问题中的 "包" , 是指的应用层的数据包. 在TCP的协议头中, 没有如同UDP一样的 "报文长度" 这样的字段, 但是有一个序号这样的字段. 站在传输层的角度, TCP是一个一个报文过来的. 按照序号排好序放在缓冲区中. 站在应用层的角度, 看到的只是一串连续的字节数据. 那么应用程序看到了这么一连串的字节数据, 就不知道从哪个部分开始到哪个部分, 是..

2021-04-18 18:23:20 103

原创 【JavaWeb学习笔记】TCP八大特性

1.确认应答(保障 TCP 稳定的核心机制)2.超时重传3.连接管理(有链接特性)3次握手建立连接 4次挥手断开连接2次握手行不行?不可以3次挥手行不行?如果没有待结束的任务,中间两次挥手就可以合并(捎带应答)看作一次挥手,三次挥手就可能成立对应到程序:接收缓冲区无数据了,那么可以直接关闭连接TIME_WAIT为什么是 2 MSL(最大超时时间)?2MSL = ACK 最大超时时间(1MSL)+ 对方发送给他消息的一个最大等待时间(1M...

2021-04-18 18:20:06 96

原创 【JavaWeb学习笔记】TCP/IP协议(一)

1.应用层2. 传输层2.1 再谈端口号端口号(Port)标识了一个主机上进行通信的不同的应用程序;在TCP/IP协议中, 用 “源IP”, “源端口号”, “目的IP”, “目的端口号”, “协议号” 这样一个五元组来标识一个通信(可以通过netstat -n查看);端口号范围划分:0 - 1023: 知名端口号, HTTP, FTP, SSH等这些广为使用的应用层协议, 他们的端口号都是固定 的.1024 -65535: 操作系统动态分配的端口号. 客户端程序的端口号, 就是由操作系统从

2021-04-18 12:50:03 179

原创 【JavaWeb学习笔记】web相关知识点

html 基本知识css 基本知识javascript 基本知识HTML 不是一门编程语言,而是一种用来告知浏览器如何组织页面的标记语言。HTML可复杂、可简单,一切取决于开发者。它由一系列的元素(elements)组成,这些元素可以用来包围不同部分的内容,使其以某种方式呈现或者工作。一对标签( tags)可以为一段文字或者一张图片添加超链接,将文字设置为斜体,改变字号,等等。HTML是一种标记语言,用来结构化我们的网页内容并赋予内容含义,例如定义段落、标题和数据表,或在页面中嵌入图片和视频。 C

2021-04-17 21:53:21 94

原创 【Java每日一练】day02_ 4月13日

每日一练A 派生出子类 B , B 派生出子类 C ,并且在 java 源代码有如下声明:A a0=new A();A a1=new B();A a2=new C();问以下哪个说法是正确的?()A 只有第一行能通过编译B 第1、2行能通过编译,但第3行编译出错C 第1、2、3行能通过编译,但第2、3行运行时出错D 第1行,第2行和第3行的声明都是正确的他的回答: D (正确)正确答案: D下面代码将输出什么内容:()public class SystemUtil{ publ

2021-04-17 21:19:23 205

原创 【Java每日一练】day01_4月12日

每日一练执行如下程序,输出结果是( )class Test{private int data;int result = 0;public void m(){result += 2;data += 2;System.out.print(result + " " + data);}} class ThreadExample extends Thread{private Test mv;public ThreadExample(Test mv){this.mv = mv;}

2021-04-15 23:43:35 203 1

原创 Linux 基本指令

Linux 基本指令1. 文件/目录基本操作1.1 ls 指令语法: ls [选项] [目录或文件] 功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。常用选项:-a 列出目录下的所有文件,包括以 . 开头的隐含文件。-d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录-k 以 k 字节的形式表示文件的大小。ls –alk 指定文件-l 列出文件的详细信息。-r 对目录反向排序。-t 以时间排序。-R 列出所有子目录下的

2021-04-14 22:06:44 125

原创 剑指 Offer 68 - I. 二叉搜索树的最近公共祖先

剑指 Offer 68 - I. 二叉搜索树的最近公共祖先给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]示例 1:输入: root = [6,2,8,0,4,7,9,null,null,3,5]

2021-03-31 22:03:59 56

空空如也

空空如也

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

TA关注的人

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