自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java多线程的创建

说多线程之前先说一下线程与进程的区别吧**进程:**是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程;进程也是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序即是一个进程从创建、运行到消亡的过程。(如图这就是进程,以及他们所占的内存空间)线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程中...

2019-06-09 09:09:45 408

原创 反射(框架的灵魂)

什么是反射:反射就是将类的各个组成部分封装为其他对象,这就是反射机制。我们在编码时定义的类中包括:成员变量,各种方法,构造方法等信息,利用反射技术可以对这个类进行全面的剖析,将这个类的各个组成部分封装为其他的对象。获取Class对象的方式Class.forName(“全类名”):将字节码文件加载进内存,返回Class对象类名.class:通过类名的属性class获取对象.getCla...

2019-06-05 17:55:46 905

原创 java快速排序 (任何人都能看懂的快速排序)

快速排序如果有人问我什么是快速排序,第一反应就是将乱序的数从小到大排列好,也可以是从大到小。好像其他的也说不出什么了,还有一个就是简称"快排"。先说一说快排的基本思想1.先从数列中取出一个数作为基准数(简单起见就选第一个数)2.分区过程:将比这个数大的数全放到他的右边,比他小的数全放到他的左边(分治)3.再对左右两边的区重复第一步和第二部操作,直到各区间只有一个数(递归)简单来说就是:...

2019-06-04 11:29:49 3157 2

原创 数值类型乘除的优化位运算原理

首先说一下数值类型的乘积例如:a = 256 * 100 原理就是将256加100次以后得出结果。下面说一下位运算的原理:100 = 64 + 32 + 4 = 26 + 25 + 22a = 256 * 26 + 256 * 25 + 256 * 22 = (256<<6)+(256<<5)+(256<<2)内容中出现的 “&...

2019-06-02 23:42:00 408

原创 父页面调用子页面的function 的小坑

不少写前端的都会在父页面去拿子页面的方法,网上几乎都是这样:$("#ifm")[0].contentWindow().iClick();将这些连成了一长串,我试了半天还是不行,然后我就拆开来用了;var contentWindow = $("#ifm")[0].comtentWindow;contentWindow.子页面方法();然后就好用了哈哈...

2020-07-21 15:37:28 232

原创 关于 SQL的 as 用法

前段时间一直在忙项目,导致很久没有更新博客了,这几天项目中碰到两个很有意思的事情。如下一: 我数据库中id是主键,不能重复,不能为空,且因为业务原因也不能设置为自增,业务是从另一个临时表中查出数据放入正式表,且放入id还不能与临时表一样。所以就有了这个,在mybatis的XML中<insert><selectKey keyProperty="id" order="before"> select replace(uuid)</selectKey> inse

2020-06-05 16:26:26 544

原创 Git中分支的应用

首先说明,gitlab上有一个master分支,其实这个分支应该只有管理员可管理的,我设置的是所有开发者都把自己代码直接提交到了master,这显然是不安全的,所以此次更新是分支的使用。分支应用步骤:1)查看分支:git branch (只有一个master分支)2)新建自己的分支 git branch 分支名此时再看分支列表出现两个分支切换到新建的自己的分支查看...

2019-12-10 09:48:58 256

原创 MongoDB之按时间查询

mongo数据库按照时间查询数据比较常见,有一点大家比较容易忽略,有时候是因为数据量太大的缘故,可能开发者没有注意。今天要说的就是通过时间查询容易遇到的问题。mongo数据库中存的时间为格林尼治时间,也就是大家所说的世界时间。中国通用的时间是北京时间,而北京时间是东八区的时间,大家在查询中请求的时间也是为北京时间,比mongo数据库中存的时间要晚了8小时,所以我们在利用时间去查询mongo数据库...

2019-11-22 14:27:56 4869

原创 MongoDB 查询中遇到的坑

首先mongoDB由于有优越的性能被广泛应用,尤其是处理千万,甚至上亿的数据上,对于有索引ID的查询不会比Mysql慢,不仅查厉害,写入也是血虐Mysql。当然各有各的好处。此篇博客不是要对比两个,而是要说一下我在工作中遇到的一个坑。简单说吧这是我的一个接口的请求的参数,大家可以看到时间这个参数是String类型的,写好接口后,我就开始一遍一遍的测,次次空指针,回到代码里检查n遍,没错呀。这...

2019-11-14 16:11:37 676

原创 Spring基于Xml注入bean的几种方式

spring中的依赖注入依赖注入: Dependency InjectionIOC的作用: 降低程序间的耦合(依赖关系)依赖关系的管理: 以后都交给spring来维护,在当前类需要用到其他类的对象,由spring为我们提供,我们只需要在配置文 件中说明依赖关系的维护: 就称之为依赖注入。能注入的数据:有三类基本类型和String其他bean类型(在配置文件...

2019-08-16 11:31:20 17698 3

原创 今天写一个死锁的实例吧

死锁这个词相信大家都听说过,或者也明白它的意思,但是不知道如何去实现,今天咱就写一个死锁的实现。实现死锁前咱们在回顾一下死锁的概念:死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。(这是百度百科给的定义)形象比喻一下把,比如我有一个鸡...

2019-08-07 18:20:59 352

原创 常见的数据结构

数据存储的常用结构有:栈、队列、数组、链表和红黑树。一:栈(stack)栈:stack,又称堆栈,它是运算受限的线性表,其限制是仅允许在标的一端进行插入和删除操作,不允许在其 他任何位置进行添加、查找、删除等操作。先进后出(即,存进去的元素,要在后它后面的元素依次取出后,才能取出该元素)。栈的入口、出口的都是栈的顶端位置压栈:就是存元素弹栈:就是取元素二:队...

2019-07-29 15:43:59 379

原创 Docker

DockerDocker :一种容器技术从他的图标就可以看出,鲸鱼(货轮),集装箱(容器),用来运输 " 货物 " 。容器里装的是什么呢?就是我们日常搭载的环境,也可以说每个容器里就装着一个操作系统(共享一个操作系统的内核)。相当于虚拟机软件中的一个镜像系统。日常开发中我们都会用到一些软件:比如Redis ,MySql等,我们使用它就必须要安装配置他们的环境,但是这些步骤是很复杂繁琐...

2019-07-26 14:15:42 304

原创 TCP/UDP 之 webSocket

1. TCP协议:控制传输协议特点:面向有链接,所有问题都要建立连接,数据安全,完整,三次握手后建立连接后才可以数据传输TCP协议传输的客户端package ClientAndServer_TCP;import java.io.InputStream;import java.io.OutputStream;import java.net.Socket;import java.ut...

2019-07-11 17:24:16 1086

原创 内部类

什么是内部类将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类。在描述事物时,若一个事物内部还包含其他事物,就可以使用内部类这种结构。例如:Body类中包含着Hreat类,这个Hreat类就可以使用内部类来描述。(来一幅很形象的图吧)代码举例class Body{ //外部类 class Hreat{ //内部类 }}访问特点...

2019-06-20 21:04:40 340

原创 javaWeb的三层架构图

用查询用户信息来做一个例子(原理图)

2019-06-04 15:22:19 2295

原创 String类和StringBuilder类的原理 以及 比较

StringBuilder类和String类的区别:String类的对象内容不可改变,所以每当进行字符串拼接时,总是会在内存中创建一个新的对象,所以经常改变内容的字符串最好不要用String,因为每次生成对象都会对系统性能产生影响。StringBuilder又称为可变字符序列,它是一个类似于String的字符串缓冲区,通过某些方法调用可以改变该序列的长度和内容。即它是一个容器,容器中可以装很多...

2019-06-03 10:44:17 620

原创 Object类equals方法与“ == ”

闲话不说直接上例子:(“ == ” 和 equals 返回的均为布尔类型)例一:String s1 = new String("abc");String s2 = "abc";System.out.println(s1 == s2); // 打印falseSystem.out.println(s1.equals(s2)); // 打印true例二:Str...

2019-06-03 09:24:14 473

原创 数组存储压缩原理

例如某个数组的内容为:1 1 1 1 1 3 3 3 3 5 1 1 1 1 7 7 7 7 7 2 3 1 1 1 1 3 3 3 3 3 9可以看出数组内容中有许多连续相同的字符此时我们可以:使 a = “1 1 1 1”b = "3 3 3 3 "c = “7 7 7 7 7”压缩后的数组变为:a 1 b 5 a c 2 3 a b 3 9比之前的超长位数少了好多,节省了内...

2019-06-02 23:02:46 489

原创 java字符串小知识

不可变字符串字符串的存储是数组形式,地址连续不可变String其他应用例如:一个字符串存储空间为012345 存储着String, 后边的接连的空间被其他程序所占用 ,所以其值是不可被改变的,可变的只是其引用 也就是改变其指向。equals和"=="==判断是否是同一个存储地址:返回布尔类型Equals判断字符串是否相等 :返回布尔类型字符串常量池中 有...

2019-06-02 20:19:43 315

原创 Jsoup解析器(简易网络爬虫)

今天太晚了就发一个简单的小例子吧利用Jsoup解析器来解析html页面,也算一个小爬虫吧public void Select() throws Exception { //1.解析html文本,获取document对象 Document document = Jsoup.parse(new URL("https://www.runoob.com/"), 1000); ...

2019-05-29 01:02:50 421

原创 java爬取网页的爬虫(html文件)

1.首先创建一个maven项目,相信大家都不是问题了2.配置maven的依赖在创建好的maven项目里的pom文件中添加httpClient依赖在maven共享库中下载此处maven共享库链接将此处代码贴到maven项目的pom.xml中 到这里一个简陋的 小爬虫就算完成了 一起看看效果吧,让我们run 一把结果显示的日志看到 请求为Get请求 ,状态码200 ...

2019-05-28 00:53:09 4455 2

原创 jsp,MVC开发模式,EL表达式,JSTL标签的使用说明

1. JSP:2. MVC开发模式3. EL表达式4. JSTL标签jsp指令* 作用:用于配置JSP页面,导入资源文件* 格式:<%@ 指令名称 属性名1=属性值1 属性名2=属性值2 … %>* 分类:1. page : 配置JSP页面的* contentType:等同于response.setContentType()1. 设置响应体的mime类型以...

2019-05-26 00:47:24 535

原创 数据库连接池之 c3p0 和 Druid

数据库连接池概念: 其实就是一个容器(集合),存放数据库连接的容器。当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。好处:1. 节约资源2. 用户访问高效实现:标准接口:DataSource javax.sql包下的1. 方法:* 获取连接:getConnection()* 归还连...

2019-05-21 23:58:31 476

原创 关于文件和目录的简单Linux命令

文件和目录常用命令**简单介绍:**•查看目录内容◦ ls•切换目录◦ cd•创建和删除操作◦ touch◦ rm◦ mkdir•拷贝和移动文件◦ cp◦ mv•查看文件内容◦ cat◦ more◦ grep•其他◦ echo◦ 重定向 > 和 >>ls常用选项• ls 是英文单词 list 的简写,其功能为列出目录的内容,是用户最...

2019-05-18 23:30:06 292

原创 Linux常用终端命令简单版

常用 Linux 命令的基本使用01. 学习 Linux 终端命令的原因•Linux 刚面世时并没有图形界面,所有的操作全靠命令完成,如 磁盘操作、文件存取、目录操作、进程管理、文件权限 设定等•在工作,大量的 服务器维护工作 都是在 远程 通过 SSH 客户端 来完成的,并没有图形界面,所有的维护工作都需要通过命令来完成•在工作中,作为后端程序员,必须要或多或少的掌握一些 Linux 常...

2019-05-17 23:45:17 516

原创 spring boot框架与thymeleaf模板引擎的整合

1.首先新建项目项目这就创建好了,下面配置pom.xml文件<modelVersion>4.0.0</modelVersion><parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter...

2019-05-17 17:45:18 508

原创 linux系统(乌班图为例)和windows系统的文件与目录的区别

文件和目录(理解)目标理解 Linux 文件目录的结构01. 单用户操作系统和多用户操作系统(科普)单用户操作系统:指一台计算机在同一时间 只能由一个用户 使用,一个用户独自享用系统的全部硬件和软件资源Windows XP 之前的版本都是单用户操作系统多用户操作系统:指一台计算机在同一时间可以由 多个用户 使用,多个用户共同享用系统的全部硬件和软件资源Unix 和 Linux 的设...

2019-05-12 12:53:35 3323

转载 java 中 char常用的api

转载自字符串常用方法 和Java string字符串常用方法字符串基本操作1.substring(from,end)(含头不含尾)截取一串字符串的一串子字符串,从from位置的字母(包括from)到end(不包括end位置)的字符串。可以通过一个字符串+********+一个子字符串的方式隐藏整个字符串中需要隐藏的部分。用的还是比较多的2.Integer.valueOf();Stri...

2019-05-08 09:59:59 1459 1

原创 计算机底层 CPU 内存 磁盘

1.首先说一下磁盘和内存在说磁盘和内存之前先说一下磁盘,顾名思义磁盘,像盘子一样,磁盘上有许多磁道,一圈套一圈,磁盘还有机械臂,通过机械的变换位置,来获取不同磁道上的数据。每圈磁道进行等长的切割,切割成的每块叫做基本存储单元,每个存储单元可存4kb的数据,但是还可以拓展到8kb 或者 16kb 。如上图,磁盘就像这样通过机械臂来扫描磁道获取数据。说一下读取或者存储数据的速度。如果需要存储1...

2019-04-26 09:46:41 718

原创 HTML5保留的表单元素 以及 新增的属性

首先是HTML5所保留的一些元素:input元素:input元素中有好多的类型,例如(单行文本框)text ,(密码输入框)password,(隐藏框)hidden,(单选框)radio,(复选框)checkbox,(图像域)image,(文件上传域)file,(提交,重设,无动作按钮)submit,reset,button。lable定义标签...

2019-03-25 11:49:51 403

原创 float数在内存中是如何存储的

float 数在内存中的存储float类型数字在计算机中用4个字节储存,一共32位float 数的图解:例如 :存储一个十进制float数 18.37518的二进制数为100100.375 转化为二进制数为 0.011具体做法:所以 18.375 的二进制数为 10010.011;将小数点左移四位 得到 1.0010011 x 2^4根据float 数的图解:4 + 1...

2019-03-22 10:38:52 958

空空如也

空空如也

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

TA关注的人

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