自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wanganyu1996的博客

小小程序猿的进阶之路

  • 博客(31)
  • 收藏
  • 关注

转载 希尔排序的实现

直接插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。 设数组为a[0…n-1]。1.      初始时,a[0]自成1个有序区,无序区为a[1..n-1]。令i=12.      将a[i]并入当前的有序区a[0…i-1]中形成a[0…i]的有序区间。3.     

2017-06-20 18:29:49 242

转载 非阻塞同步算法与CAS(Compare and Swap)无锁算法

锁(lock)的代价锁是用来做并发最简单的方式,当然其代价也是最高的。内核态的锁的时候需要操作系统进行一次上下文切换,加锁、释放锁会导致比较多的上下文切换和调度延时,等待锁的线程会被挂起直至锁释放。在上下文切换的时候,cpu之前缓存的指令和数据都将失效,对性能有很大的损失。用户态的锁虽然避免了这些问题,但是其实它们只是在没有真实的竞争时才有效。Java在JDK1.5之前都是靠syn

2017-06-11 15:29:28 315

原创 15个Java多线程面试题及回答

15个Java多线程面试题及回答1)现在有T1、T2、T3三个线程,你怎样保证T2在T1执行完后执行,T3在T2执行完后执行?这个线程问题通常会在第一轮或电话面试阶段被问到,目的是检测你对”join”方法是否熟悉。这个多线程问题比较简单,可以用join方法实现。2)在Java中Lock接口比synchronized块的优势是什么?你需要实现一个高效的缓存,它允许多个用户读,但只允许一个用户写,

2017-06-03 15:21:33 297

原创 java多线程中的sleep()方法与wait()方法的区别

sleep()是使线程暂停执行一段时间的方法。wait()也是一种使线程暂停执行的方法,例如,当线程交互时,如果线程对一个同步对象x发出一个wait()调用请求,那么该线程会暂停执行,被调用对象进入等待状态,直到被唤醒或等待时间超时   具体而言,sleep()方法与wait()方法的区别主要表现在一下几个方面:1)原理不同。sleep()方法是Thread的静态方法,是线程用来控制自身流

2017-06-02 11:14:31 1569 2

转载 java笔记--关于线程同步(7种同步方式)

关于线程同步(7种方式)为何要使用同步?     java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查),     将会导致数据不准确,相互之间产生冲突,因此加入同步锁以避免在该线程没有完成操作之前,被其他线程的调用,     从而保证了该变量的唯一性和准确性。 1.同步方法     即有synchronized关键字修

2017-05-12 15:35:09 207

转载 Hashtable/HashMap与key/value为null的关系

大家都知道Hashtable与HashMap的三大区别,其中有一条则是HashMap可以存储一个Key为null,多个value为null的元素,但是Hashtable却不可以存储。究竟是为什么?下面看一下源代码:HashMap.class: // 此处计算key的hash值时,会判断是否为null,如果是,则返回0,即key为null的键值对 // 的hash为0。因此

2017-05-09 23:55:17 928

转载 十大Intellij IDEA快捷键

Intellij IDEA中有很多快捷键让人爱不释手,stackoverflow上也有一些有趣的讨论。每个人都有自己的最爱,想排出个理想的榜单还真是困难。以前也整理过Intellij的快捷键,这次就按照我日常开发时的使用频率,简单分类列一下我最喜欢的十大快捷-神-键吧。1 智能提示Intellij首当其冲的当然就是Intelligence智能!基本的代码提示用Ctrl+Space,

2017-05-06 19:50:18 156

转载 java中关键字volatile的作用

用在多线程,同步变量。 线程为了提高效率,将某成员变量(如A)拷贝了一份(如B),线程中对A的访问其实访问的是B。只在某些动作时才进行A和B的同步。因此存在A和B不一致的情况。volatile就是用来避免这种情况的。volatile告诉jvm, 它所修饰的变量不保留拷贝,直接访问主内存中的(也就是上面说的A) =========================分割线1===========

2017-04-25 21:12:20 160

原创 数据库(手写选出一个公司年龄最大的100个员工)

SELECT TOP 100 雇员表.* FROM 雇员表 ORDER BY 雇员表.AGE DESC

2017-04-25 20:20:18 1471

原创 数组和链表的区别

数组静态分配内存,链表动态分配内存;数组在内存中连续,链表不连续;数组元素在栈区,链表元素在堆区;数组利用下标定位,时间复杂度O(1),链表定位元素时间复杂度O(n);数组插入和删除的时间复杂度O(n),链表的时间复杂度O(1)。

2017-04-25 18:43:08 230

原创 数组和链表的区别

数组静态分配内存,链表动态分配内存;数组在内存中连续,链表不连续;数组元素在栈区,链表元素在堆区;数组利用下标定位,时间复杂度O(1),链表定位元素时间复杂度O(n);数组插入和删除的时间复杂度O(n),链表的时间复杂度O(1)。

2017-04-25 18:42:29 211

原创 快排java实现

public class Sort {public static void main(String[] args) { int a[]={1,4,54,6,76,87,889,6,87,5};partition(a, 0, 9); for(int i=0;i System.out.println(a[i]); }}   public static void part

2017-04-18 20:30:51 444

原创 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。

import java.util.*;import java.util.Stack;public class Solution {    Stack stack1 = new Stack();    Stack stack2 = new Stack();        public void push(int node) {        stack1.push

2017-04-18 11:50:18 304

转载 单例模式有五种写法:懒汉、饿汉、双重检验锁、静态内部类、枚举。

转 https://biezhi.me/article/how-to-correctly-write-singleton-pattern.html单例模式算是设计模式中最容易理解,也是最容易手写代码的模式了吧。但是其中的坑却不少,所以也常作为面试题来考。本文主要对几种单例写法的整理,并分析其优缺点。很多都是一些老生常谈的问题,但如果你不知道如何创建一个线程安全的单例,不知道什么是双检锁,那

2017-04-17 15:06:29 208

原创 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5

输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。/** * Definition for binary tree * public class TreeNode { *     int val;

2017-04-15 19:47:44 1030

原创 输入一个链表,从尾到头打印链表每个节点的值。

/***    public class ListNode {*        int val;*        ListNode next = null;**        ListNode(int val) {*            this.val = val;*        }*    }**/import java.util.*;pub

2017-04-15 12:22:46 277

原创 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

public class Solution {    public String replaceSpace(StringBuffer str) {          //从后往前,先确定字符串的长度和替换后的长度       int len=str.length();       int count=0;       for(int i=0;i           if(s

2017-04-14 22:53:33 2526

原创 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。public class Solution {    public boolean Find(int target, int [][] array) {           int row=array.length-1

2017-04-14 20:11:56 356

原创 题目描述 Given n points on a 2D plane, find the maximum number of points that lie on the same straight

import java.util.*;public class Solution {    public int maxPoints(Point[] points) {        if(points.length            return points.length;        int flag=0;        for(int i=0;i     

2017-04-14 16:27:18 911

原创 Java实现链表的插入,删除,排序,输出

//链表的数据结构:package test; class Node {     Node next=null;     int data;     public Node(int data){    this.data=data;     }}//链表操作 的实现:package test;import com.oj.Main1;

2017-04-01 19:28:51 514

转载 easyui实现datagrid行内编

easyui的datagrid行内编辑对于修改信息而言比较方便直观,下面举例说明: 需求说明: 在行内编辑员工状态  一、编辑jsp Html代码  ...                 a href="#" id="save" onclick="obj.save()" class="easyui-linkbutton" i

2017-03-20 19:09:57 415

转载 java中spring+springMVC+Mybatis主流框架maven的pom.xml配置参考

xml version="1.0" encoding="UTF-8"?>  project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"      xsi:schemaLocation="http://maven.apache.org/POM/4

2017-03-18 22:16:23 305

转载 数据库内外网交换怎么做的,如果交换给你做,你怎么做

怎么实现内外网的数据同步,数据库是Oracle的.项目已经分别在内网和外网上线。但是现在数据不同步。也就是说从外网中录入的数据,不能在内网中查看。反之亦然,现在需要实现数据同步。将内网和外网的数据显示为一样      方案一、外网需要同步的表加上触发器,保存在临时表。      2、task定时导出临时表记录,修改已导出记录的状态,上传到类似ftp目录上。      3、内网task通

2017-03-16 12:08:13 6565

转载 HTTP协议的主要特点

HTTP协议的主要特点可概括如下:1.支持客户/服务器模式。2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。4.无连接:无连

2017-03-10 19:46:19 2200

转载 Java中,&&与&,||与|的区别

java中,很多人都不知道&与&&,|与||的区别。&,&&:(与,短路与):一样的地方就是二者执行最后的结果是一样的,但是执行的过程有区别,对于&:无论&左边是否为false,他都会继续检验右边的boolean值。对于&&:只要检测到左边Boolean值为false时,就会直接判断结果,不会在检验右边的值(因为"与"有一个false最后结果就是false了)所以&

2017-03-07 17:39:33 247

转载 什么是死锁?如何避免死锁?

所谓死锁:是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象死锁。虽然进程在运行过程中,可能发生死锁,但死锁的发生也必须

2017-02-28 19:20:44 214

原创 密码验证合格程序

密码要求: 1.长度超过8位  2.包括大小写字母.数字.其它符号,以上四种至少三种   3.不能有相同长度超2的子串重复  说明:长度超过2的子串输入描述:一组或多组长度超过2的子符串。每组占一行输出描述:如果符合要求输出:OK,否则输出NG输入例子:021Abc9000021Abc9Abc1021ABC900002

2017-02-27 17:41:46 189

转载 Object类有哪些公用方法?

Object是所有类的父类,任何类都默认继承Object。clone保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常equals在Object中与==是一样的,子类一般需要重写该方法hashCode该方法用于哈希查找,重写了equals方法一般都要重写has

2017-02-19 22:58:21 225

转载 Java中equals和==的区别

写在前面面试题:请解释字符串比较之中“==”和equals()的区别?

2017-02-19 22:38:10 193

转载 Java九种基本数据类型的大小,以及他们的封装类以及注意关键点

Java提供了九种基本的数据类型,它们分别是:void  boolean  short  int  long float double  byte char  对应的Java类 Void Boolean Short Integer  LongFloat  Double Byte Character基本类型大小(字节)默认值封装类b

2017-02-19 21:54:38 439

原创 进程与线程的区别?

对于进程的定义,从不同的角度可以有不同的定义,其中较为典型的定义有:             (1)进程是程序的一次执行              (2)进程是一个程序及其数据在处理机上顺序执行时所发生的活动              (3)进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位(传统OS的定义)线程:比进程更小的能独立运行的基

2016-12-05 16:02:28 170

空空如也

空空如也

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

TA关注的人

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