自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

GeorgesGuo的博客

努力学习的GUOGUOGUO

  • 博客(45)
  • 收藏
  • 关注

原创 JVM

JVM:(Java Virtual Machine的简称。意为Java虚拟机。);通过软件模拟Java字节码的指令集,并不真实存在。1. Java内存区域与内存溢出异常1·1 运行时数据区域线程私有区域:程序计数器,Java虚拟机栈,本地方法栈线程共享区域:Java堆,方法区,运行时常量池程序计数器(线程私有):可看作是一个守护线程,是当前线程所执行的字节码的行号指示器。各个线程之...

2019-09-17 14:53:10 95

原创 SQL索引

索引可以大大提高系统检索的性能1·优点:通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性可以大大加快 数据的检索速度,这也是创建索引的最主要的原因可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义在使用分组和排序 子句进行数据检索时,同样可以显著减少查询中分组和排序的时间通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能2·缺点创建索引和...

2019-08-26 09:13:04 112

原创 Session与Cookie

Http协议是无状态无连接的,因此一个用户在一个网站做连续操作需要不断提供身份信息,因此便有了Session与Cookie。Session:服务器进行描述用户身份信息的方式(服务器端)当用户第一次访问浏览器时,浏览器发送请求给服务器,服务器便会自动生成一个Session和一个Session ID 用来标志该Session。并且通过其响应浏览器。当该用户第二次访问时,浏览器发出请求并发出该Se...

2019-07-31 23:41:23 72

原创 Java常用的线程操作方法

1·线程名称获取取得JVM中正在执行的线程对象public static native Thread currentThread();线程名称的命名与取得线程创建建议设置一个简明思意的名称(表示线程功能)//两种方式public Thread (Runnable target,String name){}public Thread synchronized void setNa...

2019-07-25 17:35:17 295

原创 TCP协议

TCP协议传输控制协议(Transmission Control Protocol):即对数据的传输进行详细控制特点:1·有链接2·可靠运输3·面向字节流TCP最核心的机制:1·可靠传输2·尽量提高传输效率(注意两者无法同时兼顾)一·确认应答(可靠性的核心机制)序号:按照每个字节的方式来编号确认序号:当前序号之前的数据已经确认收到,接下来对端该发 送确认序号开始的数据二·...

2019-07-16 11:04:17 212

原创 Java三大类(String、Object、包装类)常用方法小结

String类(final class String)1·实例化方式直接赋值String str="hello world";通过构造方法赋值String str1=new String("hello string");2·字符串的相等比较“==”操作符用于比较两个变量的值是否相等,对于基本类型而言,比较的就是数值大小;对于引用类型而言,比较实际上是保存地址是否相等而不会比较内容所以在...

2019-03-20 19:36:14 228

原创 SQL语言

SQL:Structured Suery LanguageSQL是结构化查询语言,其功能包括数据操控(DML),数据定义(DDL),数据控制(DCL),事务控制(TCL)四个部分;数据操控DML对数据库的基本操作,增删改;insert 插入一条记录 update 更新语句 delete 删除记录 ...

2019-10-24 15:09:41 1664

原创 Java与C/C++有什么异同

两者均为面向对象语言,都使用了面向对象思想(封装,继承,多态),两者有很好的可重用性。两者区别如下:Java为解释型语言,其运行过程为:程序源代码经过Java编译器编译成字节码,然后由JVM解释执行。C++为编译型语言,源代码经过编译和链接后生成可执行的二进制代码。因此Java执行速度比C++慢,但Java支持跨平台执行,C++不能。 Java为纯面向对象语言,所有代码必须在类中实现,...

2019-10-08 16:51:50 670

原创 数值的整数次方

题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。保证base和exponent不同时为0public class Solution { public double Power(double base, int exponent) { if(exponent == 0) ret...

2019-10-07 21:38:53 106

原创 二进制中1的个数

题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。public class Solution { public int NumberOf1(int n) { int count = 0; while(n!=0){ count++; n&=(n-1); } ...

2019-10-07 21:37:42 130

原创 矩形覆盖

题目描述我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?public class Solution { public int RectCover(int target) { if(target == 0) return 0; int [] arr = ne...

2019-10-07 21:36:34 97

原创 变态跳台阶

题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。public class Solution { public int JumpFloorII(int target) { int [] arr = new int[target+1]; arr[0] = 0; arr[1]...

2019-10-07 21:35:32 77

原创 跳台阶

题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。public class Solution { public int JumpFloor(int target) { if(target <= 2){ return target; } ...

2019-10-07 21:34:37 182

原创 斐波那契数列

题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39public class Solution { public int Fibonacci(int n) { int f1 = 1; int f2 = 1; if(n<=0){ retu...

2019-10-07 21:33:53 612

原创 旋转数组的最小数字

题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。import java.util.ArrayList;public class Solution { ...

2019-10-07 21:33:01 132

原创 用两个栈来实现一个队列

题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。import java.util.Stack;public class Solution { Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer> stack2 = new Sta...

2019-10-07 21:32:06 101

原创 重建二叉树

题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。/** * Definition for binary tree * public class TreeNode { * int val;...

2019-10-07 21:31:01 70

原创 从尾到头打印链表

题目描述输入一个链表,按链表从尾到头的顺序返回一个ArrayList。/*** public class ListNode {* int val;* ListNode next = null;** ListNode(int val) {* this.val = val;* }* }**...

2019-10-07 21:30:03 72

原创 替换空格

题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。public class Solution { public String replaceSpace(StringBuffer str) { StringBuffer sb = new StringBuff...

2019-10-07 21:28:44 69

原创 二维数组中的查找

题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。public class Solution { public boolean Find(int target, int [][] array) { int row = array...

2019-10-07 21:26:54 70

原创 Linux基础指令

man: 查看手册(man ls)su: 切换用户(su test)目录指令:ls:浏览目录pwd:显示当前绝对路径(绝对路径:从根目录起始的路径)(相对路径:从当前目录开始的路径)mkdir:创建目录 -p:若此时路径中某些目录不存在加上此选项后系统会自动建立rmdir:删除空目录 -p:当子目录被删除后,若父目录也变为空则一起删除rm:删除普通文件 ...

2019-09-30 17:25:35 153 1

原创 Java :new一个对象时发生了什么

在介绍双亲委派模型之前先介绍类加载器,对于任意一个类都需要由加载它的类加载器和这个类本身一同确立在JVM中的唯一性,每一个类加载器都有一个独立的类名称空间。类加载器就是根据全限定名称将class文件加载到JVM内存,然后转化为class对象。类加载器的分类启动类加载器(BootstrapClassLoader):虚拟机自身的一部分扩展类加载器(ExtensionClassLoader)应...

2019-09-30 12:57:30 290

原创 持久连接Keep-Alive

什么是持久连接?HTTP协议中采用“请求 - 应答”模式,在普通状态下一次请求应答结束后便会断开连接,下次请求时又进行新的一次连接,完成后又会断开(HTTP为无连接协议),而Keep-Alive模式下使客户端与服务端的连接持续有效,只要未提出断开,则一直连接Keep-Alive优点提高了HTTP响应时间,避免堵塞,Web页面显示速度提高使性能得到了提升。Keep-Alive模式下,客户...

2019-08-12 13:42:18 381

原创 HTTP协议中GET与POST方法

HTTP协议中常用到的两种方法先简单介绍一下GET与POST方法,两者本质上都为TCP链接,做的事情也基本相同,但是使用时要注意使用条件,不能混用。GET获取资源GET方法用来请求访问已经被URI识别的资源,指定的资源经过服务器解析后返回响应的内容(原样返回)。POST用来传输实体的主体post的主要目的并不是获取响应的主题内容,而是传输。GET与POST区别GET把参数包含在U...

2019-08-12 12:06:54 2965

原创 Java异常体系

异常体系:当程序出现错误时能够最大化地减少损失的一种保护手段。Java中的异常也是类异常的类继承关系:只有Throwable以及其子类可以进行异常的捕获与处理Error :描述jvm运行时内部错误,栈溢出,堆的溢出Exception:程序中普遍纯在的由于代码问题产生的错误IOException:由于IO(输入输出)产生的异常,如在程序中打开了一个并不存在的文件RuntimeExcep...

2019-08-07 11:08:53 100

原创 简述volatile关键字

volatile基本特性可见性当一个线程修改了变量的值,新的值会立刻同步到主内存中,当其他线程读取到这个变量时,读取到的会是最新的值。禁止指令重排(Double-Check-Singleton);编译时JVM遵循内存屏障的约束,运行时依靠CPU屏障指令来阻止重排。volatile代码既不会提前也不会滞后。volatile代码前的所有代码一定全部执行完毕,后面的代码一定还未开始。适...

2019-08-07 10:36:53 192

原创 final,finally , finalize()的区别

final-关键字(终结器)使用final修饰的变量会变为常量,常量必须在声明时赋值,且无法再次修改;修饰数据类型无论是基本类型还是引用类型,值不能变,对于引用类型而言,不可改变的是指向不能变(保存的堆内存地址不能变)修饰方法-封装被final修饰的方法不能被覆写。修饰类被final修饰的类没有子类(string)finally异常处理的一部分,用在try/cat...

2019-08-04 14:02:55 74

原创 牛客试题---编辑距离(Edit Distance)

Given two words word1 and word2, find the minimum number of steps required to convert word1 toword2. (each operation is counted as 1 step.)You have the following 3 operations permitted on a word:a) In...

2019-08-02 17:51:33 524

原创 进程与线程

进程:操作系统中一个程序的执行周期称为一个进程。他是资源分配的最小单位,也是调度运行的基本单位。例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格、内存空间、磁盘空间、I/O设备等。然后,把该进程放人进程的就绪队列。进程调度程序选中它,为它分配CPU以及其它有关资源,该进程才真正运行。所以,进程是系统中的并发执行的单位。线程:一个程序执行的最小单位一个程序同时执行多个...

2019-08-01 10:31:41 86

原创 测试分类

测试的分类按开发阶段分类单元测试集成测试系统测试验收测试按测试对象划分性能测试安全测试兼容性测试文档测试易用性测试(用户体验测试)业务测试界面测试安装测试按是否查看代码划分黑盒测试白盒测试灰盒测试按测试执行方式静态测试动态测试按是否手工划分手工自动化按测试实施组织αβ第三方按测试地域划分本地化测试国际化测试按开发阶段划分1·单...

2019-07-29 18:04:51 289

原创 持续集成工具jenkins

持续集成的核心价值持续集成中的任何一个环节都是自动完成的,不用太多的人工干预,有利于减少重复过程以节省时间、 费用和工作量;持续集成保障了每个时间点上团队成员提交的代码是能成功集成的。换言之,任何时间点都能第一时间 发现软件的集成问题,使任意时间发布可部署的软件成为了可能;持续集成还能利于软件本身的发展趋势,这点在需求不明确或是频繁性变更的情景中尤其重要,持续集成的质量能帮助团队进行有效决...

2019-07-28 17:03:04 130

原创 HashMap,TreeMap,Hashtable的关系与区别

都为Map接口下常用子类HashMap基于哈希表实现TreeMap基于红黑树实现Hashtable基于哈希表+红黑树(JDK1.8之后,JDK1.8之前基于哈希表)哈希表(K,V):数组根据相应的哈希算法计算key值的下标,返回值即为V存储的下标哈希算法:f(K) -> int即为V需要存储的数组下标%16查找O(1),添加O(1) 不存在别的元素时哈希冲突解决办法:...

2019-07-27 20:42:28 132

原创 启动线程的四种方法

方式一1自定义类继承Thread类,覆写run方法(线程任务)2实例化自定义类对象,该对象就是一个具备线程执行的对象3线程类的对象run方法直接调用和普通类的对象调用没有区别,启动线程一律使用Thread类提供的start()方法* 直接调用run方法,实际还是同步执行,与线程无关javamyThread1.run();*调用start方法,才会异步执行,跟线程有关,该方法不能多次调用,只...

2019-07-23 15:25:25 2268

原创 next(),nextLine(),以及nextInt()的用法及区别

next(),nextLine(),nextInt()都为scanner的内置用法,在此总结他们的区别和作用。他们的不同之处在于对空格的处理以及返回值的不同。next( )该方法将空格看作两个字符串之间的间隔,返回值为String类型: public static void main(String[] args) { Scanner sc = new Scanne...

2019-07-22 09:05:10 594

原创 快速排序,寻找第K大值

public class Finder { public int findKth(int[] a, int n, int K) { return findKth(a, 0, n-1, K); } public int findKth(int[] a, int low, int high, int k) { int part = partation(a, low, high);...

2019-07-21 21:10:09 365

原创 队列实现栈,栈实现队列

//队列实现栈class MyStack { private Queue<Integer> queue1; private Queue<Integer> queue2; private int size; /** Initialize your data structure here. */ public MyStack() {...

2019-07-21 15:37:00 80

原创 TCP与UDP

TCP/IP 中有两个具有代表性的协议:TCP和UDP可以根据IP部首中的协议字段的协议号可识别IP层传输的到底是哪一种协议。TCP提供可靠的通信传输,UDP常用于让广播和细节控制交给应用的通信传输。UDP:不具有可靠性的数据报协议,无法保证消息一定会到达。没有复杂的控制,它是将应用程序发来的数据在收到的那一刻,立即按照原样发送到网络上的一种机制。在网络拥堵时其无法进行流量控制等避免网络堵...

2019-07-19 22:50:37 72

原创 OSI参考模型

协议:计算机与计算机之间通过网络实现通信时实现达到的一种“约定”,遵循这一“约定”进行处理方可进行通信,协议不同则无法实现通信如图为协议分层分层的最大好处在于“封装”上图只是将协议简单的分了两层进行说明,下面OSI模型则将这样一个复杂的协议分成了易于理解的七层。OSI参考模型7应用层6表示层5会话层4传输层3网络层2数据链路...

2019-07-19 22:12:18 187

原创 浅谈HashMap

a·线程安全问题采用异步处理,线程不安全,性能较高b·关于null,是否可以存放null值?HashMap:k,v都a允许为nullc·为Map接口下常用子类HashMap基于哈希表实现,TreeMap基于红黑树实现,Hashtable基于哈希表+红黑树(JDK1.8之后,JDK1.8之前基于哈希表)内部属性:负载因子:final float loadFactor(默认为0.7...

2019-07-18 23:44:45 97

原创 Java中的数组

数组是引用数据类型,有内存的分配问题。需要声明并初始化数组。eg:开辟一个长度为3的数组int x = new int[3];分立实现数组实例化int [ ] x = null;x = new int[3];二维数组int [ ] [ ] data = new int [ ] [ ]{{1,2,3},{4,5},{6,7,8}};java实现数组排序java.util.Arr...

2019-03-13 20:49:32 94

空空如也

空空如也

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

TA关注的人

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