自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据库中的视图理解和优点介绍

数据库中视图的概念:视图是从一个表或是多个表导出的表,视图与表不同,视图是一个虚表,即视图所对应的数据不进行实际存储,数据库中指存储视图的定义,在对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的基本表。视图是虚表,是从一个或是几个基本表导出的表。可以将视图看做是移动的窗口,通过它可以看到自己感兴趣的数据,视图是从一个或是多个表中获得的,这些表的数据存放在数据库中,那些用户产生视图

2016-10-31 20:21:03 12422

转载 Java泛型详解,通俗易懂的写法

我们知道,使用变量之前要定义,定义一个变量时必须要指明它的数据类型,什么样的数据类型赋给什么样的值。假如我们现在要定义一个类来表示坐标,要求坐标的数据类型可以是整数、小数和字符串,例如:x = 10、y = 10x = 12.88、y = 129.65x = "东京180度"、y = "北纬210度"针对不同的数据类型,除了借助方法重载,还可以借助自动装箱和向上转型。我们知

2016-10-27 09:19:02 4273

转载 java设计模式-单例模式

Java中单例(Singleton)模式是一种广泛使用的设计模式。单例模式的主要作用是保证在Java程序中,某个类只有一个实例存在。一些管理器和控制器常被设计成单例模式。       单例模式有很多好处,它能够避免实例对象的重复创建,不仅可以减少每次创建对象的时间开销,还可以节约内存空间;能够避免由于操作多个实例导致的逻辑错误。如果一个对象有可能贯穿整个应用程序,而且起到了全局统一管理控制

2016-10-26 15:26:28 333

转载 Java多线程学习(吐血超详细总结)

写在前面的话:此文只能说是Java多线程的一个入门,其实Java里头线程完全可以写一本书了,但是如果最基本的你都学掌握好,又怎么能更上一个台阶呢?如果你觉得此文很简单,那推荐你看看Java并发包的的线程池(Java并发编程与技术内幕:线程池深入理解),或者看这个专栏:Java并发编程与技术内幕。你将会对Java里头的高并发场景下的线程有更加深刻的理解。目录(?)[-]一扩展java

2016-10-25 10:44:56 501

转载 利用jdk自带的运行监控工具JConsole观察分析Java程序的运行

一、JConsole是什么    从Java 5开始 引入了 JConsole。JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行。您可以轻松地使用 JConsole(或者,它更高端的 “近亲” VisualVM )来监控 Java 应用程序性能和跟踪 Java 中的代码。二、如何启动JConsole如果是从命令行启动,使

2016-10-21 21:39:29 2057

原创 Java线程池

1.     线程池为什么需要线程池,其实线程池和数据库连接池一样,都是为了节省线程的创建和关闭的时间。在并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,的频繁创建线程就会大大降低系统的效率,因为频繁的创建和销毁线程需要时间。 Java中通过Executors提供四种线程池,分别为:1.      newCachedThreadPool:创建一个可缓存线程池,如

2016-10-21 21:34:35 307

原创 Java的三大特性(继承、封装、多态)

常见的我们会说java有三种特性(继承、封装、多态),面试的时候会让你简单的说说这三大特性的特点。 封装:封装就是指将对象的状态信息隐藏在对象的内部,不允许外部的程序直接访问对象内部的信息,而是通过该类的所提供的方法来实现对内部信息的操作和访问。继承:子类是父类的扩展,子类是一种特殊的父类。获得父类的属性和方法。多态:是面向对象的核心特性之一。在面向对象语言中,多态性是指一个方法可

2016-10-20 09:46:23 538

原创 Java中抛出的内存异常总结

Java中抛出的内存异常总结根据上述的总结:可以整理出来,JVM在运行的时候大致会分为五个区域。方法区、堆区、本地方法栈、虚拟机栈、程序计数器。其中程序计数器不会报出OutOfMemoryError错误,其他的都有可能会报出这个错误。StackOverflowError:如果线程请求的栈深度大于虚拟机所允许的深度就会报这样的错误。OutOfMemoryError:如果虚拟机栈可

2016-10-19 20:51:48 2002

原创 Java内存区域与内存溢出异常

Java内存区域与内存溢出异常如上图所示,首先java源代码文件(.java后缀)会被java编译器编译为字节码文件(.class后缀)然后再让类加载器加载各个类的字节码文件,加载完毕后,交由JVM执行引擎执行。在整个执行过程中,JVM会用一段空间来存储程序执行期间需要用到的数据和相关信息,这段控件一般称之为Runtime Data Area(运行时数据区),也就是我们常说的JVM

2016-10-19 14:20:46 373

原创 Java中的重写和重载

重载(overriding):1.     Java中的重载就是在一个类中可以创建多个方法,他们具有相同的名字,但是有不同个数的参数或是不同类型的参数,在使用时候根据不同的参数类型和参数个数来确定使用哪一个函数,这就是多态性。2.     重载的时候,方法名是一定要一样的,返回类型可以相同也可以不相同,但是参数个数或是参数类型一定是不同的。不能根据返回类型来判断是否是重载。重写(ove

2016-10-18 17:53:42 746

原创 Java死锁与如何避免死锁

所谓死锁就是进程循环等待它方占有的资源而无限制的僵持下去的局面。以一个简单的例子来解释:一个桥,最多可以通过一个车子,但是左右两边都来了车子,而且都上了桥,左边的车子,占用了左边的桥资源,二右边的车子,占用了右边的桥的资源。左边的车子等待右边的车子让出右边的资源,但是右边的车子却要左边的车子让出左边的资源。双方都不放弃自己所占有的资源,却都想着让对方让出自己的资源,这就会无限制的等待下

2016-10-18 15:59:15 5835

原创 java中的Socket编程

基于Socket的java网络编程网络上的两个程序通过一个双向的通讯连接实现数据的交换,这个双向链路的一端成为一个socket。Socket通常用来实现客户方和服务方的连接。Socket是TCP/IP协议的一个十分流行的编程界面,一个socket有一个IP地址和一个端口号唯一的确定。但是,socket所支持的协议类也不仅仅是TCP/IP一种。在java环境下,socket编程主要是指基于T

2016-10-17 10:37:50 384

转载 数据结构之【图】

一、基本术语图:由有穷、非空点集和边集合组成,简写成G(V,E);Vertex:图中的顶点;无向图:图中每条边都没有方向;有向图:图中每条边都有方向;无向边:边是没有方向的,写为(a,b)有向边:边是有方向的,写为有向边也成为弧;开始顶点称为弧尾,结束顶点称为弧头;简单图:不存在

2016-10-13 20:20:53 386

转载 Java多线程中join方法的理解

thread.Join把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程。比如在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B。t.join();      //使调用线程 t 在此之前执行完毕。t.join(1000);  //等待 t 线程,等待时间是1000毫秒 先上一段JDK中代码:Java代码

2016-10-08 09:55:47 2193 2

原创 Java常见排序:(三)快速排序

快速排序是一种非常快的交换排序方法,思路很简单,将待排的数据序列中任意取一个数据作为分界值,所有比这个值小的放在左边,比他大的放在右边。形成左右两个子序列,左边的值都比分界值小,右边的值都比分界大。接下来对左右两个子序列进行递归,两个子序列重新选择中心元素并按照上述规则调整,直到每个字序列中只剩一个元素。快速排序 [时间复杂度:O(nlogn)、空间复杂度:O(log2n)、不稳定]快速排

2016-10-07 15:12:31 1461

原创 Java常见排序:(二)冒泡排序

交换排序的主题操作就是对数组中的数据不断的进行交换操作。交换排序中最主要的就是冒泡排序和快速排序。对于一组包含n个数据,最坏的情况下,要进行n-1趟的比较。第一趟依次比较0和1、1和2、2和3……n-2和n-1索引的元素如果发现第一个元素大于后一个元素,交换他们。经过一趟后,最大的元素就放在最后。依次类推冒泡排序 [时间复杂度:O(n2)、空间复杂度:O(1)、稳定]冒泡排

2016-10-06 21:42:29 336

原创 Java常见排序:(一)直接选择排序

常见的一些内部排序算法排序:常见的也是基础的一些算法。评价排序算法优劣的标准:1.      时间复杂度:主要是分析关键字的比较次数和记录的移动次数。2.      空间复杂度:分析排序算法中需要多少辅助内存。3.      稳定性:如果两个记录A和B的关键字值是相同的,但是排序后A、B的先后顺序保持不变,则称之为算法是稳定的;反之就是不稳定的。 就现在的排序算法来看,

2016-10-06 21:05:54 1637

原创 Java中队列的实现(2)-使用单向链表以及实现

队列(Queue):是另一种被限制过的线性表,它是固定一端来插入数据元素,另一端只删除元素,也就是说队列中的元素移动是固定的,就像超市收银台一样,一边是进的,一边是出的,而且是先进入的首先获得服务的。队列是一个特殊的线性表,它只允许在表的前端(front)进行删除操作,只允许在表的后端(rear)进行插入数据。进行插入操作的端称之为队尾,进行删除操作的端称之为队头。对于一个队列来说

2016-10-06 19:50:00 2492 1

原创 Java中队列的实现(1)-使用顺序存储结构(数组)以及实现

队列(Queue):是另一种被限制过的线性表,它是固定一端来插入数据元素,另一端只删除元素,也就是说队列中的元素移动是固定的,就像超市收银台一样,一边是进的,一边是出的,而且是先进入的首先获得服务的。队列是一个特殊的线性表,它只允许在表的前端(front)进行删除操作,只允许在表的后端(rear)进行插入数据。进行插入操作的端称之为队尾,进行删除操作的端称之为队头。对于一个队列来说,每个元

2016-10-06 19:28:33 1920

原创 Java中栈的实现(2)-使用单向链表以及实现

栈和队列其实是与普通的线性发展而来的,为普通的线性表增加一些特殊的限制就可以得到栈和队列了。从功能上看,栈和队列比普通的线性表功能相对弱一点,但是在特殊的场合下,使用栈和队列更有利,例如,编译器在实现函数的调用的时候需要使用栈来存储断点,实现递归算法时候也需要用栈来存储。 栈:一种数据结构,代表只能从一端进行插入、删除操作的特殊线性表,通常情况下在栈的尾巴进行插入、删除操作。

2016-10-06 15:38:45 1389

原创 Java中栈的实现(1)-使用顺序存储结构(数组)以及实现

栈和队列其实是与普通的线性发展而来的,为普通的线性表增加一些特殊的限制就可以得到栈和队列了。从功能上看,栈和队列比普通的线性表功能相对弱一点,但是在特殊的场合下,使用栈和队列更有利,例如,编译器在实现函数的调用的时候需要使用栈来存储断点,实现递归算法时候也需要用栈来存储。 栈:一种数据结构,代表只能从一端进行插入、删除操作的特殊线性表,通常情况下在栈的尾巴进行插入、删除操作。对于栈而言

2016-10-06 15:02:33 2540

原创 java中线性表的两种实现方式区别

注意:线性表的两种实现->顺序实现和链式实现线性表的两种实现 顺序表链表空间性能顺序表的存储空间是静态分布的,需要一个固定的数组,总有部分数组元素要浪费链表的存储空间是动态分布,因此不会有空间被浪费。但由于链表需要额外的空间来为每个节点保存指针,因此也要牺牲一部分空间。时间性能

2016-10-06 10:38:24 4663

原创 双向链表的Java实现,以及相关函数的实现

1.定义一个节点类public class Node { //存储的数据 private Object data; //前一个节点 private Node prev; //后一个节点 private Node next; public Object getData() { return data; } public void setData(Obje

2016-10-06 10:10:42 1909

原创 单向链表的Java实现,以及相关函数。

如上图所示就是单向链表的示意图:下面就是Java实现单向链表的基本过程与源码,可以跑起来的。1.创建一个节点类package com.wpl.snglelink;public class Node { public Object getData() { return data; } public void setData(Object data) { this.d

2016-10-05 13:34:10 2330

地图切图下载工具

地图切图下载工具,可以制作离线地图。里面使用简单各种地图都可以下载!

2018-01-24

空空如也

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

TA关注的人

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