自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java多线程sleep与wait 区别

sleep与wait 区别对于sleep()方法,我们首先要知道该方法是属于Thread类中的。而wait()方法,则是属于Object类中的。sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监控状态依然保持者,当指定的时间到了又会自动恢复运行状态。在调用sleep()方法的过程中,线程不会释放对象锁。而当调用wait()方法的时候,线程会放弃...

2019-09-02 23:56:17 256

原创 剑指Offer 顺时针打印矩阵

题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.代码如下:import java.util.ArrayList;public class Solution { ...

2019-08-30 00:44:22 131

原创 MySQL中的索引

索引索引(Index)是帮助MySQL高效获取数据的数据结构。常见的查询算法,顺序查找,二分查找,二叉排序树查找,哈希散列法,分块查找,平衡多路搜索树B树(B-tree)...

2019-08-28 22:20:46 147

原创 剑指Offer 复杂链表的复制

题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)思路:遍历链表,复制每个结点,如复制结点A得到A1,将结点A1插到结点A后面;重新遍历链表,复制老结点的随机指针给新结点,如A1.random = A.random.n...

2019-08-28 22:06:45 90

原创 关于JMM的一些自我理解

JMM(Java 内存模型)基本概念JMM 本身是一种抽象的概念并不是真实存在,它描述的是一组规定或则规范,通过这组规范定义了程序中的访问方式。JMM 同步规定线程解锁前,必须把共享变量的值刷新回主内存线程加锁前,必须读取主内存的最新值到自己的工作内存加锁解锁是同一把锁由于 JVM 运行程序的实体是线程,而每个线程创建时 JVM 都会为其创建一个工作内存,工作内存是每个线程的...

2019-08-27 23:57:23 233 1

原创 JVM中的类加载机制

JVM类加载机制分为五个部分:加载,验证,准备,解析,初始化,下面我们就分别来看一下这五个过程。加载加载是类加载过程中的一个阶段,这个阶段会在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的入口。注意这里不一定非得要从一个Class文件获取,这里既可以从ZIP包中读取(比如从jar包和war包中读取),也可以在运行时计算生成(动态代理),也可以由...

2019-08-27 23:43:47 84

原创 MySQL事务介绍

MySQL和其它的数据库产品有一个很大的不同就是事务由存储引擎所决定例如MYISAM,MEMORY,ARCHIVE都不支持事务,事务就是为了解决一组查询要么全部执行成功,要么全部执行失败。MySQL事务默认是采取自动提交的模式,除非显示开始一个事务。事务的四大特征是什么?数据库事务正确执行的四个基本要素,ACID,原子性(Atomicity),一致性(Correspondence),隔离性...

2019-08-25 23:39:05 113

原创 剑指Offer 调整数组顺序使奇数位于偶数前面

题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。思路一:新建一个数组,以空间换时间1.遍历整个数组,如果是奇数,从头部放入原数组,并记录指针2.如果是偶数,放入新建的数组中,记录指针3.将新数组中的元素按顺序放到原数组中后面public void reOr...

2019-08-22 23:58:18 81

原创 JavaWeb的一些基础概念

Web简介1.1 Web应用Web程序是一种可以通过浏览器访问的应用程序。Web应用的一个最大好处是用户只需要有浏览器即可访问应用程序,无需安装其它软件。我们经常访问的电商网站,如:淘宝、京东、门户网站、新浪、网易等都属于Web应用程序。1.2 B/S模型B/S模型也称之为浏览器-服务器模型,对应的是C/S模型即就是客户端-服务器模型。B/S模型的优点:具有分布式特点,可以随时...

2019-08-20 23:43:32 146

原创 Java 中ThreadLocal作用

ThreadLocal,很多地方叫做线程本地变量,也有些地方叫做线程本地存储,ThreadLocal的作用是提供线程内的局部变量,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或者组件之间一些公共变量的传递的复杂度。ThreadLocalMap(线程的一个属性)每个线程中都有一个自己的ThreadLocalMap类对象,可以将线程自己的对象保持到其中,各管各的,线程可以正确的访问...

2019-08-19 22:59:56 682

原创 Java中的反射机制

动态语言动态语言,是指程序在运行时可以改变其结构:新的函数可以引进,已有的函数可以被删除等结构上的变化。比如常见的JavaScript就是动态语言,除此之外Ruby,Python等也属于动态语言,而C、C++则不属于动态语言。从反射角度说JAVA属于半动态语言。反射机制概念 (运行状态中知道类所有的属性和方法)在Java中的反射机制是指在运行状态中,对于任意一个类都能够知道这个类所有的属性...

2019-08-19 22:37:03 83

原创 Java中常见的几种数据结构

栈(stack)栈(stack)是限制插入和删除只能在一个位置上进行的表,该位置是表的末端,叫做栈顶(top)。它是后进先出(LIFO)的。对栈的基本操作只有push(进栈)和pop(出栈)两种,前者相当于插入,后者相当于删除最后的元素。队列(queue)队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是...

2019-08-19 22:26:23 290

原创 Java实现用双栈模拟队列

用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。分析队列的特性是:“先入先出”,栈的特性是:“先入后出”当我们向模拟的队列插入数 a,b,c 时,假设插入的是 stack1,此时的栈情况为:栈 stack1:{a,b,c}栈 stack2:{}当需要弹出一个数,根据队列的"先进先出"原则,a 先进入,则 a 应该先弹出。但是此时 a 在 stack1...

2019-08-18 15:59:45 318

原创 HTTP原理

HTTP是一个无状态的协议。无状态是指客户机(Web浏览器)和服务器之间不需要建立持久的连接,这意味着当一个客户端向服务器端发出请求,然后服务器返回响应(response),连接就被关闭了,在服务器端不保留连接的有关信息.HTTP遵循请求(Request)/应答(Response)模型。客户机(浏览器)向服务器发送请求,服务器处理请求并返回适当的应答。所有HTTP连接都被构造成一套请求和应答。传...

2019-08-18 14:18:07 285

原创 JavaEE中SpringMVC原理

Spring的模型-视图-控制器(MVC)框架是围绕一个DispatcherServlet来设计的,这个Servlet会把请求分发给各个处理器,并支持可配置的处理器映射、视图渲染、本地化、时区与主题渲染等,甚至还能支持文件上传。Http请求到DispatcherServlet(1) 客户端请求提交到DispatcherServlet。HandlerMapping寻找处理器(2) 由Dis...

2019-08-17 23:54:52 132

原创 Java中的内部类详解

JAVA内部类Java类中不仅可以定义变量和方法,还可以定义类,这样定义在类内部的类就被称为内部类。根据定义的方式不同,内部类分为静态内部类,成员内部类,局部内部类,匿名内部类四种。静态内部类定义在类内部的静态类,就是静态内部类。public class Out { private static int a; private int b; public static class...

2019-08-17 23:48:49 103

原创 网络七层模型

网络七层架构7层模型主要包括:物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的模数转换与数模转换)。这一层的数据叫做比特。数据链路层:主要将从物理层接收的数据进行MAC地址(网卡的地址)的封装与解封装。常把这一层的数据叫做帧。在这一层工作的设...

2019-08-17 23:06:54 748

原创 Java异常分类及处理

概念如果某个方法不能按照正常的途径完成任务,就可以通过另一种路径退出方法。在这种情况下会抛出一个封装了错误信息的对象。此时,这个方法会立刻退出同时不返回任何值。另外,调用这个方法的其他代码也无法继续执行,异常处理机制会将代码执行交给异常处理器。异常分类Throwable是 Java 语言中所有错误或异常的超类。下一层分为Error和ExceptionErrorError类是指jav...

2019-08-16 23:47:21 128

原创 Java中synchronized和ReentrantLock的区别

两者的共同点:都是用来协调多线程对共享对象、变量的访问。都是可重入锁,同一线程可以多次获得同一个锁。都保证了可见性和互斥性。两者的不同点:ReentrantLock显示的获得、释放锁,synchronized隐式获得释放锁 。ReentrantLock可响应中断、可轮回,synchronized是不可以响应中断的,为处理锁的不可用性提供了更高的灵活性。ReentrantLock...

2019-08-16 23:38:06 241

原创 JVM垃圾回收与算法

JVM GC如何确定垃圾引用计数法在Java中,引用和对象是有关联的。如果要操作对象则必须用引用进行。因此,很显然一个简单的办法是通过引用计数来判断一个对象是否可以回收。简单说,即一个对象如果没有任何与之关联的引用,即他们的引用计数都不为0,则说明对象不太可能再被用到,那么这个对象就是可回收对象。可达性分析为了解决引用计数法的循环引用问题,Java使用了可达性分析的方法。通过一...

2019-08-16 12:03:56 75

原创 关于JVM内存划分,你想知道的都在这里

基本概念:JVM 是可运行 Java 代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收,堆 和 一个存储方法域。 JVM 是运行在操作系统之上的,它与硬件没有直接的交互。运行过程我们都知道 Java 源文件,通过编译器,能 够生产相应的 .Class 文件,也就是字节码文件,而字节码文件又通过 Java 虚拟机中的解释器,编译成特定机器上的机器码 。也就是...

2019-08-15 22:40:05 84

原创 Java String类中的replace()方法与replaceAll()的联系与区别

在之前刷题的过程中,发现貌似无论调用replace()还是replaceAll()都可以运行成功,那么它们之间有什么区别呢?我们先来先来看看文档replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换replaceAll的参数是regex,即基于规则表达式的替换。相同点:都是全部替换,即把源字符串中的某一字符或字符串全部换成指定的字符或字符串...

2019-08-15 21:15:03 887

原创 Java中泛型总结

Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。泛型类范例:泛型类的基本语法class MyClass<T> { T value1;}尖括号 <> 中的 T 被称作是类型参数,用于指代任何类型。...

2019-03-25 23:59:41 183

原创 day 10_21

1.写一个函数返回参数二进制中 1 的个数比如: 15 0000 1111 4 个 1#define _CRT_SECURE_NO_WARNINGS#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;int count_one_bits(unsigned int value){ int count = 0; while (value)...

2018-10-21 12:59:44 88

原创 day 10_18

1.递归和非递归分别实现求第n个斐波那契数。#define _CRT_SECURE_NO_WARNINGS#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;//非递归实现int fib1(int n){ long num = 0; int num1 = 1; int num2 = 1; if (n &lt;= 2) { re...

2018-10-18 17:31:10 96

原创 day 10_15

1.完成猜数字游戏。#define _CRT_SECURE_NO_WARNINGS#include &amp;lt;stdio.h&amp;gt;#include &amp;lt;stdlib.h&amp;gt;#include &amp;lt;time.h&amp;gt;void menu();void game();int main(){ int input; srand(time(NULL)); do { me...

2018-10-15 17:55:35 80

原创 day 9_29

1.在屏幕上输出以下图案:#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;#include &lt;string.h&gt;int main(){ char arr1[] = " ";//字符串后自动带有"\0",数组从0开始计数的 char arr2[] = "*********";//打印出菱形,此数组长度一定为奇..

2018-09-29 00:34:21 96

原创 day 9_26

将数组A中的内容和数组B中的内容进行交换。(数组一样大)#define _CRT_SECURE_NO_WARNINGS#include&amp;amp;lt;stdio.h&amp;amp;gt;#include&amp;amp;lt;stdlib.h&amp;amp;gt;int main(){ int arr1[3] = { 1, 2, 3 }; int arr2[3] = { 4, 5, 6 }; int count = sizeof...

2018-09-26 23:34:59 89

原创 day 9_24

给定两个整形变量的值,将两个值的内容进行交换。#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;int main(){ int a = 10; int b = 20; int c = 0; c = a; a = b; b = c; printf("a = %d b = %d\n", a, b); system("pause...

2018-09-24 23:48:04 99

原创 day 9_21

1.打印100~200 之间的素数素数就是除了1与它本身,不能被任何数整除的数.如需打印100~200 之间的素数,需判断这个数从2到它本身能不能被整除,其实可以简化成从2到sqrt()之间判断即可。#include &amp;lt;stdio.h&amp;gt;#include &amp;lt;stdlib.h&amp;gt;#include &amp;lt;math.h&amp;gt;int main(){ int m, k, ...

2018-09-21 23:50:16 129

空空如也

空空如也

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

TA关注的人

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