自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 LeetCode训练营之字符串

longest-palindromic-substring(最长回文子串) Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is ...

2018-11-26 09:07:02

阅读数 77

评论数 0

原创 LeetCode训练营之排序

一、merge-sorted-array Given two sorted integer arrays A and B, merge B into A as one sorted array. Note: You may assume that A has enough space to ...

2018-11-12 19:34:45

阅读数 48

评论数 0

原创 多线程编程与艺术之单例模式

懒汉单例模式 //懒汉模式实现单例 public class SingleTon_Lazy { //单例延迟实例化 private SingleTon_Lazy singleTon_lazy; //无参构造函数私有化,禁止使用new进行实例化 priva...

2018-11-12 09:14:21

阅读数 66

评论数 0

原创 LeetCode训练营之链表

一、 add-two-numbers You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their no...

2018-11-10 18:36:13

阅读数 158

评论数 0

原创 LeetCode训练营之二叉树

binary-tree-postorder-traversal Given a binary tree, return the preorder traversal of its nodes’ values. 方法一:递归实现前序遍历 方法二:迭代实现前序遍历(栈) publi...

2018-11-09 17:13:09

阅读数 74

评论数 0

原创 LeetCode训练营之栈与队列

Given n non-negative integers representing the histogram’s bar height where the width of each bar is 1, find the area of largest rectangle in the his...

2018-11-09 13:48:29

阅读数 71

评论数 0

原创 数据结构与算法之二叉堆训练营

前言: 二叉堆本质上就是一个特殊的完全二叉树。其中,“特殊”表现在节点元素之间存在着大小规律,完全二叉树表示二叉堆的存储结构采用数组实现,只要记住这两点,二叉堆就不难理解和实现;二叉堆根据大小规律的不同,可以分为大顶堆和小顶堆。 概念简述: 二叉堆是一种完全二叉树,在这棵树中,任意父节点的值全部...

2018-11-08 10:07:12

阅读数 146

评论数 0

原创 数据结构与算法之队列与栈训练营

1.用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 public class QueueImplementedByStack { Stack<Integer> stack1 = new Stack<Inte...

2018-11-07 21:52:22

阅读数 29

评论数 0

原创 数据结构与算法之链表训练营

1. 1 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList.(栈) public ArrayList<Integer> printListFromTailToHead(ListNode node) { //返回结果 ...

2018-11-07 19:53:35

阅读数 30

评论数 0

原创 数据结构与算法之二叉树训练营

public ArrayList PrintFromTopToBottom(TreeNode root) { //返回的层序遍历结果 ArrayList result = new ArrayList<&amp...

2018-11-05 19:49:11

阅读数 39

评论数 0

原创 多线程与高并发编程之基础知识(上)

前言: 使用多线程,第一步就是需要知道如何实现自定义线程,因为实际开发中,需要线程完成的任务是不同的,所以我们需要根据线程任务来自定义线程,那么,JDK提供了三种自定义线程的方式,供我们实际开发中使用,来开发出符合需求的多线程程序! 以下给出线程的三种实现方式,并且对每种实现的优缺点进行分析,...

2018-10-01 21:48:25

阅读数 14300

评论数 0

原创 分布式Java应用之集合框架篇(下)

前言: 在分布式Java应用之集合框架篇(上)一文中,从整体上对Java分布式应用中的集合框架进行了介绍,以及对于其中的List家族给出了源码分析;本文将继续介绍集合框架中的Set家族和Map家族,其实Set家族和Map家族之间是有着很深的渊源,在本文的后续内容中,将从两大家族的成员的关键实现进行...

2018-10-01 18:32:19

阅读数 95

评论数 0

原创 分布式Java应用之集合框架篇(上)

前言:Java程序员开发程序时,必定会使用JDK中提供的集合类来完成功能模块的开发,而JDK是Java规范的实现,不同厂商提供的JDK也多少会存在一些差异,那么,如何选用合适的集合类实现应用中的具体需求,是每个Java程序员在实际开发中必须解决的一个问题;解决这一问题就需要我们对JDK中集合类的相...

2018-09-30 15:06:58

阅读数 491

评论数 0

原创 常见排序算法分析与实现(Java版)

1. 冒泡排序 核心提炼:相邻元素,两两比较并交换,逐趟进行,给人以水泡逐渐上浮的感觉 实现代码: /** * 冒泡排序(两两比较--交换) * @param arr */ public static void bubbleSor...

2018-09-10 21:37:21

阅读数 66

评论数 0

原创 计算机底层原理学习笔记之进程与线程

前言: 老生常谈,进程是操作系统分配资源的最小单元,线程是操作系统调度的最小单元 基本概念: 计算机中的资源: 1. 计算资源:CPU提供的计算能力 2. 存储资源:内存、硬盘等提供的存储能力 3. 经典冯诺依曼结构:CPU+存储器+IO CPU可视为黑盒,输入的是待处理的...

2018-09-04 11:06:52

阅读数 212

评论数 0

原创 多线程与高并发编程进阶(二)

前言:一般来说,Java代码从编写到最后的执行会经历以下的过程:Java源代码(.java文件)–<即时编译器>–Java字节码(.class文件)–<类加载器加载>–汇编指令(...

2018-09-03 22:32:30

阅读数 584

评论数 0

原创 多线程与高并发编程进阶(一)

使用多线程的目的:充分利用CPU资源以及加速程序运行速度 使用多线程面临的挑战:上下文切换、死锁、计算机资源的限制等 上下文切换: CPU通过为每个线程分配CPU时间片来实现即使在单核的情况下,依旧可以使用多线程执行代码的机制; 时间片就是CPU的执行时间,通过分...

2018-09-03 20:05:49

阅读数 1074

评论数 0

原创 数据库基础知识杂记

数据库相关知识总结 数据库:数据结构、存储引擎、 什么是存储引擎以及不同存储引擎特点 - wildfox - 博客园 事务隔离级别(根源:并发性操作数据库) 实现机制: 锁机制实现隔离级别 级别影响: 隔离级别低—>并发性高—>系统开销低 ...

2018-08-05 16:25:46

阅读数 62

评论数 0

转载 ThreadLocal浅析

ThreadLocal概念 ThreadLocal 字面意思来看有点像“线程的本地实现版本”,实际上真正含义是ThreadLocalVariable(线程本地局部变量),所以把它命名为ThreadLocalVar更加合适。 ThreadLocal 是用来解决共享对象(单个线程内共享)的多线程访...

2018-03-08 09:33:35

阅读数 69

评论数 0

原创 Java多线程之线程安全的实现方法

同步互斥(阻塞式同步) 同步互斥是一种常见的并发正确保障手段;其中,同步是指在同一个时刻,多个线程中只能有一个线程去访问共享变量;互斥是指实现同步的一种手段,如临界区、互斥量和信号量; 在Java中,最基本的互斥同步手段就是synchronized关键字;synchronized关键字...

2018-03-08 09:31:26

阅读数 176

评论数 0

原创 Java设计模式(2)之简单工厂模式&工厂模式

前言: 先遇到问题再找解决问题的方法!在开始介绍简单工厂模式,先通过一个场景来引出简单工厂模式出现的目的; 在Java开发中,我们经常与数据库打交道,但是,由于生产数据库的厂商有很多,因此可供开发使用的数据库也就有很多,但是无论选择哪种数据库,这些数据库都会支持一些公共的数据操作,比如插入、删...

2018-03-07 17:12:05

阅读数 52

评论数 0

原创 多线程与高并发编程之基础知识(下)

Java线程的实现: Java线程模型是基于操作系统原生线程模型来实现的;线程模型只对线程的并发规模和操作成本产生影响,对Java程序的编写和运行过程来说,并没有什么不同; Java线程调度: 线程调度是指系统为线程分配处理器使用权的过程;主要调度方式有:抢占式线程调度、协同式线程调...

2018-03-07 09:55:40

阅读数 1773

评论数 0

原创 Java集合框架成员之HashTable类的源码分析(基于JDK1.8版本)

首先给出关于此类的一些概括性的知识点: 1.这个类实现了一个哈希表,在这个哈希表中将键与值形成映射关系;任何非null对象都可以用来作为一个键或值; 2.为了成功地从一个哈希表中存储和检索对象,哈希表中被用来作为键的对象必须实现hashCode和equals方法; 3.影响Hashtable...

2018-03-06 13:22:32

阅读数 95

评论数 0

原创 集合、异常综合应用之简易扑克牌游戏

package imooc.poker; public class Card implements Comparable { private String shape; private String number; public Card(){ this("...

2018-03-01 13:40:44

阅读数 99

评论数 0

原创 三大特性应用之YY出租系统的设计

Java基础项目: 项目描述:设计一个车辆出租系统,在设计中,利用面向对象编程的三大特性:封装性、继承性以及多态性; 完成的功能:在控制台进行出租车辆的信息,接收用户的输入,根据用户的输入,完成对应的操作,实现简单的请求-响应的业务功能; 实现的难点: 项目源码: package com...

2018-02-28 19:29:17

阅读数 61

评论数 0

原创 多线程并发场景下的单例模式设计

单例模式在项目开发中是一种常用的设计模式。对于普通场景下,单例模式分为懒汉单例模式和饿汉单例模式(关于这两种模式的详解参见博文Java设计模式(1)之单例模式学习总结);但是,在现代的软件开发中,多线程、高并发是编写Java应用程序的必须解决的一个问题,如何使单例模式在多线程、高并发的场景下能够正...

2018-02-28 16:30:11

阅读数 442

评论数 0

原创 深入JVM之垃圾收集

前言: 之前了解了Java虚拟机所管理的内存区域划分情况之后,接着,又对Java虚拟机中的对象进行了深入探秘,下面应该进入Java虚拟机的重点——垃圾收集器的深入之旅;在编程语言界,了解和学习过Java和C++的程序员都知道,Java是不需要手动为对象申请内存和释放内存编写代码的,这些工...

2018-02-26 20:05:21

阅读数 69

评论数 0

原创 Java虚拟机中的对象探秘

前言: Java是一门面向对象的语言,在Java程序运行的过程中,无时无刻都有对象被创建出来;在了解了Java虚拟机在运行时管理的内存区域的结构划分后,就可以进一步去理解在虚拟机中是如何为对象分配内存、对象的内存布局以及如何访问对象;下面将基于主流的Java虚拟机Sun HotSpot以及常用的内...

2018-02-26 13:02:57

阅读数 95

评论数 0

原创 Java虚拟机中的内存区域划分——运行时数据区域解析

前言: Java虚拟机提供的自动内存管理与垃圾回收机制,使得Java与C++之间隔着一座难以逾越的界线,也正是因为Java虚拟机为Java程序员提供了内存管理上的便利,导致了一旦发生内存泄漏和内存溢出问题,不熟悉Java虚拟机运行原理的Java程序员将会对发生的问题一筹莫展;所以,对Java虚拟机...

2018-02-25 23:03:01

阅读数 195

评论数 0

原创 Java集合框架成员之LinkedList类的源码分析(基于JDK1.8版本)

LinkedList类实现了List接口以及Deque接口,并且是双向链表的实现版本;LinkedList类实现了所有可选的列表操作,并且允许添加包括null元素在内的所有的元素; LinkedList类中的所有操作都可以认为是对双向链表使用的; LinkedList类是非线程安全的。...

2018-01-13 09:38:11

阅读数 95

评论数 0

原创 Java集合框架成员之ArrayList类的源码分析(基于JDK1.8版本)

加深对Java的学习与理解的最好途径之一,就是在掌握了Java的基础知识之后,对JDK中的源码进行学习和分析;通过分析牛人们的代码,可以学到很多东西!这些知识和经验对于巩固加深对Java的掌握来说,大有裨益! 在分析源码之前,先概述性地列出ArrayList类的一些注意点: ①Arra...

2018-01-11 20:15:41

阅读数 169

评论数 0

原创 多线程中的线程间通信及等待/通知机制的两种实现方式

多线程编程中,如果每个线程之间互相独立,那么将会使多线程带来的优势不能够很好地发挥出来。使用线程间通信,可以使得原先的互相独立的多个线程之间,能够很好地互相协作,使得系统之间的交互性得到提升,大大提高了CPU利用率,从而完成一些复杂的多线程功能模块。 多线程间的通信一般采取等待/通知机制进行实现...

2017-11-21 18:37:59

阅读数 1534

评论数 0

原创 多线程中的同步之synchronized应用——synchronized方法

多线程编程中出现的数据读写不同步的问题给多线程编程开发者带来了很大的困扰。一般来说,线程中数据读写不同步是由于多个线程对同一个对象中的实例变量进行并发访问造成的;我们将这种由于多个线程对同一个对象中的实例变量进行并发访问,造成数据被“脏读”的这种现象称为非线程安全;与之对应的,线程安全就是指对同一...

2017-11-13 10:06:48

阅读数 154

评论数 0

原创 Java中的instanceof运算符的执行原理和使用参考

Java中instanceof运算符 Java中的instanceof运算符用来判断一个对象是否属于指定的类以及该类的后代类

2017-11-13 09:28:34

阅读数 1373

评论数 0

原创 Java多线程编程技术之入门基础

多线程编程的基础:包括进程与线程、多线程的基本的使用步骤以及终止线程的方法详细解析;

2017-11-12 11:32:56

阅读数 109

评论数 0

原创 Java设计模式(6)之观察者模式学习总结

观察者模式:在观察者模式中,存在着对象之间的一对多的依赖关系,即一个对象的状态发生改变时,所有依赖于该对象的对象都会得到通知,并对自身的状态进行更新; 观察者模式的学习中,对象之间的一对多的依赖关系是学习观察者模式的切入点,而被依赖对象(目标对象)的状态改变会对依赖对象(观察者对象...

2017-10-28 11:20:50

阅读数 114

评论数 0

原创 Java设计模式(5)之责任链模式学习总结

在日常生活中,我们如果仔细观察的话,很多事情都蕴含着责任链模式的思想;比如某个人去售楼处买房,对销售人员提出打折的要求,如果折扣比较 小,销售人员有权给予该购买者提出的折扣优惠,就可以直接答应该请求;如果折扣过大,销售人员无权答应,则会想他的上司——销售组长询问, 如果销售组长有权答应...

2017-10-26 19:25:34

阅读数 77

评论数 0

原创 Java设计模式(4)之适配器模式学习总结

前言 由于项目工程中,常常会出现现存的类与所需求的类之间类型不兼容,但是现存的类又具有所需求类的功能,所以为了能够重用现存的类,解决项目 中的需求,适配器模式就应运而生了。 简而言之,适配器模式就是在目标类与现存类之间搭起一道桥梁(适配器类),使得可以使用现存的类来适应目标接口...

2017-10-25 16:31:41

阅读数 85

评论数 0

原创 Java后台开发必备技能JDBC+Servlet+JSP

前言: 学习Java后端开发的过程中,很多情况下都要和数据库打交道,如何通过Java程序去访问数据库,成为每一个后端开发人员必备的技能点。本文以一个简单的 项目将数据库(这里使用Mysql)、JDBC、Servlet、JSP串联起来,将其中的逻辑流畅地走一遍,由于需要用到JSP和Servlet,...

2017-10-24 19:56:06

阅读数 694

评论数 0

原创 设计模式之单例模式应用实例

前言 Java中的JDBC在Java后台开发中是必备的基础技能,如何获取数据库的连接,是每一个Java后台开发人员的必须Get的技能点。 本文中采用单例模式设计JDBC(这里采用的是mysql数据库),这里使用单例模式中的懒汉模式进行获取数据库连接的类的设计。 由于获取数据库连接的方法会抛出...

2017-10-23 11:12:35

阅读数 166

评论数 0

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