自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (1)
  • 收藏
  • 关注

原创 ORACLE数据库的总结

下图是个人对于Oracle数据库的一些总结,还没有完全完成,希望大家批评指正!!!

2018-03-23 22:50:23 234

原创 jstl.jar的初步学习

⁢c:>核心标签 ————————————————————————————————————————————⁢c:set> 主要将变量存储至JSP范围内或是JavaBean的属性中 1、将value的值存储至范围为scope的varName变量中 <c:set value=”value” var=”varName” scope=”{ page|request|se...

2018-03-23 22:35:36 244

原创 哲学家就餐问题

哲学家就餐问题在Java多线程中是一个死锁的典型案例; 问题描述:有一群哲学家,每个哲学家身边都有一支筷子(也就是说哲学家的人数和筷子的人数是相等的;)哲学家有两种状态:吃饭或者思考;我们现在就来具体实现一下:import java.util.Random;import java.util.Scanner;import java.util.concurrent.ExecutorService;

2017-07-30 17:39:06 381

原创 线程池的原理

本篇文章就来说说线程池的实现原理:我们使用线程池的时候通常都是一下这三种方式:ExecutorService pool;//固定数量的线程池pool = Executors.newFixedThreadPool(10);//可伸缩性的线程池pool = Executors.newCachedThreadPool();//单一线程池pool = Executors.newSingleThr

2017-07-28 16:49:36 316

原创 Java多线程

引文在复习多线程之前,我们得先明白一下几个概念: ①进程与线程的区别: http://blog.csdn.net/mingming_shiwo/article/details/76037935②并行与并发的区别: 并行:两个或多个事件或活动在同一时刻发生;多个程序在同一时刻在多个CPU上同时执行; 并发:一个CPU或者多个CPU在若干程序之间多路复用;并发性是对有限的物理资源强制行

2017-07-24 22:06:51 159

原创 进程与线程的区别

进程与线程:①进程和线程都是CPU工作时间段的描述; ②进程是程序在某个数据集合上的一次运行活动,线程是进程中的一个执行路径; ③进程是CPU资源分配的最小单位,线程是CPU调度的最小单位; ④进程之间不能共享资源,而线程共享所在进程的部分资源(堆和方法区),同时线程还有自己的栈和寄存器; ⑤进程有独立的地址空间而线程没有,线程必须依赖于进程而存在。举个例子:一家公司的运营就相当于一个进程;

2017-07-24 20:49:48 442

原创 Arrays.sort()用的是什么排序算法?怎么优化?

Arrays.sort()用的是快速排序算法。相信大家对于这个都是了解的。 算法的思想: 选择基准将数组一分为二,基准前面的比基准小,基准后面的比基准大,之后分别对这两部分继续之前的操作,已达到整个数组有序的目的。 算法内容描述: 先选择一个基准,指向数组开始的指针start和指向数组结束的指针end; 当star

2017-07-20 17:19:57 22114 5

原创 二分查找的原理及代码实现

二分查找算法的原理就是基于一个有序表进行查找;首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。优点: 时间复杂度虽

2017-07-11 20:00:48 810

原创 堆排序原理及代码实现

说堆排序之前,我们得先了解一下堆的概念。堆分为大根堆和小根堆,其实就是完全二叉树,大根堆要求是节点的元素要大于其左右孩子的元素;小根堆要求是节点的元素小于其左右孩子的元素;但是两者对于左右孩子谁大谁小没有要求。堆排序的算法就是利用大根堆顶元素最大和小根堆堆顶元素最小的特点而设计的排序算法,每次将堆顶元素与最后堆最后的节点元素去交换,然后再去将调整剩余节点调整为大根堆或小根堆,以此来实现排序。堆排序的

2017-07-11 19:23:19 499

原创 I/O复用-select、poll和epoll的区别

select、poll和epoll三组I/O复用系统调用都能监听多个文件描述符。下来就从事件集、最大支持文件描述符数、工作模式和具体实现对这三组函数做个比较:

2017-04-18 20:26:42 297

原创 I/O复用-epoll系列系统调用

epoll 是 Linux 特有的I/O复用函数。 ① epoll 使用一组函数来完成任务 ② epoll 把用户关心的文件描述符上的事件放在内核里的一个事件表里,需要使用一个额外的文件描述符来唯一标识内核中的这个事件表#include <sys/epoll.h>/* * size 参数现在并不起作用,只是告诉内核事件表需要多大 * 该函数返回的文件描述符将用作其他所有epoll系统调用

2017-04-18 16:08:53 230

原创 I/O复用-poll系统调用

用途: poll 系统调用和 select 类似,也是在指定时间内轮询一定数量的文件描述符,检测其中是否有就绪的文件描述符。#include <poll.h>/* * fd 参数是一个 pollfd 结构类型的数组,它指定所有感兴趣的文件描述符上发生的可读、可写和异常等事件 * nfds 参数指定被监听事件集合 fds 的大小 * timeout 参数指定 poll 的超时值,当 time

2017-04-18 15:30:50 273

原创 I/O复用-select系统调用

I/O复用使得程序能够同时监听多个文件描述符,通常一下情况需要用到I/O复用技术:1、客户端程序要同时处理多个socket。 2、客户端程序要同时处理用户输入和网络连接。 3、TCP服务器要同时处理监听socket和连接socket。 4、服务器要同时处理TCP请求和UDP请求。 5、服务器要同时监听多个端口,或者处理多种服务。select系统调用用途:在一段指定的时间内,监听用户感兴趣的文

2017-04-17 21:45:52 273

原创 javaNIO中ByteBuffer用法

ByteBuffer类是在javaNIO中常常使用的一个缓冲区类,使用ByteBuffer可以进行高效的IO操作 下来我们看一下ByteBuffer类的常用方法: ByteBuffer.allocate();或者ByteBuffer.wrap();创建ByteBuffer public static ByteBuffer allocate(int capacity) { if (

2017-04-13 17:43:47 10198

原创 垃圾收集器(GC)

垃圾收集器(Garbage Collection, GC)1、概述垃圾收集(Garbage Collection, GC)的历史远远比java久远,很久之前人们就开始思考GC需要完成的三件事情:*那些内存需要回收?*什么时候回收?*如何回收?到如今,内存的动态分配与内存回收技术已经相当成熟,一切看起来都进入了“自动化”时代,那我们去了解GC和内存分配的目的何在呢?其实当需要

2017-03-17 13:41:32 278

原创 String、StringBuffer与StringBuilder的区别

关于String、StringBuffer与StringBuilder之间,我一直处于很浅显的层次,最近在复习的过程中,对三者进行了比较整理,下面我就说明一下:StringBuffer、StringBuilder和String一样,也用来代表字符串。String类是不可变类,任何对String的改变都会引发新的String对象的生成;StringBuffer是可变类,任何对它所指向的字符串的改变都不

2017-03-16 17:56:39 206

原创 java类的加载过程

要想了解java类的加载过程,就得熟悉JVM的内存布局,只有清楚了java的内存布局,才能更深刻的理解类的加载过程。如下图,java的内存布局: 概述Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数,属性和方法等,Java允许用户借由这个Class相关的元信息对象间接调用Class对象的功能。 jav

2017-03-09 22:30:02 259

原创 java集合之集合简介

在java JDK1.2中提出了类集框架的概念并在JDK1.5中对此框架进行了修改,加入了泛型。在整个集合中,其核心的接口是Collection、Set、List、Map等,具体请看下面的java集合框架图: 在上述类图中,HashSet、HashMap、ArrayList、LinkedList等实线边框的是实现类,AbstractCollection、AbstractList、Abstrac

2017-03-08 13:35:35 319

转载 CPU密集型和I/O密集型

引用至:> http://blog.csdn.net/q_l_s/article/details/51538039CPU密集型: cpu密集型也称为计算密集型,在多重程序系统中,大部分时间用来计算、逻辑判断等CPU动作的程序就是CPU密集型的程序,比如计算圆周率、对视频进行高清解码等等。 I/O密集型: I/O密集型指的是系统的CPU效能相对于硬盘/内存要好很多,大部分时间都是

2017-03-06 17:26:26 2122

原创 java中wait()、notify()以及notifyAll()的使用

线程调用了对象的wait()方法后,线程便处于该对象的等待池中,等待池中的线程不会去竞争该对象的对象锁;直到线程调用了notify()方法(任意唤醒等待池中的一个线程)/notifyAll()方法(唤醒等待池中的所有线程),被唤醒的线程则会进入该对象的锁池中去竞争该对象锁;被唤醒的线程如果没有竞争到该对象的对象锁,则他继续留在锁池中,除非线程再次调用wait()方法,则线程才会重新回到等待池中。

2017-03-06 15:03:07 1342

原创 用java实现泛型编程的单链表

以下程序实现了单链表的基本操作(初始化、头插、尾插、打印、删除)//单链表的节点结构设计class SLinked<T>{ private T data;//单链表的节点数据域 private SLinked<T> next;//单链表的节点节点域 public SLinked(T data){ this.data = data; this.ne

2017-03-03 15:54:43 1136

原创 二叉树的结构分析及实现

二叉树的定义: 二叉树是每个节点最多只有两个字数的树结构,在图的定义中二叉树是一个连通的无环图,并且每个顶点的度不大于3(根节点的度不大于2)。二叉树的基本类型:二叉树的实现:节点结构设计class Node{ private Object data; private Node leftChild; private Node rightCh

2017-02-22 17:50:11 339

原创 PreparedStatement与Statement的区别

PreparedStatement与Statement的区别 preparedstatement有预编译的过程,而statement没有预编译的过程;//PreparedStatement创建的时候绑定了sql,以后不需要再次编译preparedstatement = connection.prepareStatement(sql);result = preparedstatement.exe

2017-02-13 23:37:18 204

原创 java连接mysql数据库 以及java连接sql server数据库

java连接mysql数据库 以及java连接sql server数据库 在java的应用中,我们经常会对数据库进行必要的操作,下来我们就了解一下java连接mysql数据库 以及java连接sql server数据库的具体步骤吧 一、mysqlimport java.sql.Connection;import java.sql.DriverManager;import java.sql.R

2017-02-13 21:48:16 1471

原创 mysq语句整理

1、新建数据库create database 数据库名;2、删除数据库drop database 数据库名;3、查看已存在的数据库show databases;4、查看数据库引擎show engines; 或者 show variables like 'have%';5、登录数据库系统mysql -h localhost -u root -p6、创建表c

2017-01-02 14:32:42 225

转载 java中的pack()

原文:java中pack()pack()方法是Frame类从java.awt.Window继承而来的方法,原型为:public void pack();作用:调整窗口的大小,使其适应组件的大小和布局。如果该窗口或其所有者仍不可显示,则两者在计算首选大小之前变得可显示。在计算首选大小之后,将会验证该Window。窗口自动适应大小,使窗口能正好显示里面所有的控件。如下图所示:

2016-12-14 13:10:54 13602 2

划词翻译chrome插件

划词翻译——chrome插件,支持chrome浏览器,做到随时随地翻译,哪里不会点哪里

2018-07-20

空空如也

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

TA关注的人

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