自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (5)
  • 收藏
  • 关注

转载 进程和线程关系

1.进程是什么(1)来源:进程(Process)的概念首先在60年代由麻省理工学院的MULTICS系统和IBM公司的CTSS/360系统引入。(2)意义:程序是我们时常挂在嘴边的一个词汇,但程序本身是一个没有生命的实体,只有当处理器赋予程序生命时,它才能成为一个活动的实体,此时我们就将其称作进程。在操作系统中,多道程序需要共享系统资源,从而导致各程序在执行过

2016-08-30 11:27:02 664

转载 数据库事务和锁机制

前几日有一个猎头公司的面试,其中问道我事务隔离这块的知识点,猛一问真是想不起来啊,顿感羞愧啊,回来专门总结一下这方面的知识来夯实一下之前的知识体系,也提醒广大园友们进步在于总结啊,好多不用的知识点,有时候有必要温故知新啊。简介         ACID,是指在可靠数据库管理系统(DBMS)中,事务(transaction)所应该具有的四个特性:原子性(Atomicity)、一致性(

2016-08-29 15:49:35 812

转载 用户标签系统 数据库设计

需求背景目前主流的博客系统、CMS都会有一个TAG标签系统,不仅可以让内容链接的结构化增强,而且可以让文章根据Tag来区分。相比传统老式的Keyword模式,这种Tag模式可以单独的设计一个Map的映射表来增加系统的负载和查询的效率。数据库设计方案1此方案分为2个表:1.Tag表2.文章表Tag表表结构: 代码如下:tagid # t

2016-08-29 14:44:30 3297 1

转载 用户 用户头像 数据库设计

具体要求是这样的:用户可以有多个用户头像,但是每次可用的只有一个。我有两个设计方案一:在用户头像表里加一个IsActivity标记哪个头像是可用的;二:在用户表里加一个记录可用头像ID的字段。方案一:User表:UserId  其他基本信息字段UserIcon表:IconId UserId IconUrl IsActivity(标记该头像

2016-08-29 14:32:02 3853

转载 收藏表 数据库设计

产品收藏功能,应该如何设计数据表有产品表 产品ID,产品名称有用户表现用户可以收藏产品,应该怎么设计数据表1.是在用户表里增加收藏列,以类似(产品ID)这样的方法存储?2.还是增加收藏表,以每个用户的每个收藏都当作一条数据?单独建立收藏表,基本没有在用户表中增加收藏列这种类似做法的。其次,每个用户的一次收藏作为

2016-08-29 14:16:32 7773

转载 微博关注我、我关注你数据库该怎么设计

尤其是一个明星,他有上百万上千万粉丝:解决方案有两个思路:1 由被关注者主动推数据2 由被关注者向粉丝推送一个通知,然后由粉丝去拉数据不过这样就意味着他发一条消息需要有千万个人来访问这张消息表或发一条消息需要写向千万个粉丝的消息表写数据。第一种方案,应该是每个人都有一张自己的消息表。当被关注者发消息时,会将此消息写入关注者的消息表中,内容大概有被关注者id、

2016-08-29 11:50:19 1470

转载 mysql嵌套语句查询

嵌套查询的意思是,一个查询语句(select-from-where)查询语句块可以嵌套在另外一个查询块的where子句中,称为嵌套查询。其中外层查询也称为父查询,主查询。内层查询也称子查询,从查询。   嵌套查询的工作方式是:先处理内查询,由内向外处理,外层查询利用内层查询的结果嵌套查询不仅仅可以用于父查询select语句使用。还可以用于insert、update、delete语句或其他子

2016-08-29 11:32:33 22341

转载 微博相互关注互粉mysql表实现

关注关系产生的四种关系状态关注粉丝双向关注(互粉)无关系用词follower表示粉丝 -- 追随者用词following表示关注 -- 追随设计的结构必须能满足以下功能:查询关注列表查询粉丝列表查询双向关注列表判断两个用户的关系查询带关系状态的任一列表第一种方案用一行纪录表示关注和粉丝,字段u2的值表示粉丝,u

2016-08-29 11:29:05 11064 4

转载 tcp可靠传输的实现

TCP协议作为一个可靠的面向流的传输协议,其可靠性和流量控制由滑动窗口协议保证,而拥塞控制则由控制窗口结合一系列的控制算法实现。一、滑动窗口协议     关于这部分自己不晓得怎么叙述才好,因为理解的部分更多,下面就用自己的理解来介绍下TCP的精髓:滑动窗口协议。     所谓滑动窗口协议,自己理解有两点:1. “窗口”对应的是一段可以被发送者发送的字节序列,其连续的范围称之为“窗口”;

2016-08-26 22:39:20 598

转载 servlet单例模式的理解

理解两个问题足以,问题如下:1、如果不同的2个用户同时对这个网站的不同业务同时发出请求(如注册和登陆),那容器里有几个servlet呢??2、不同的用户同时对同一个业务(如注册)发出请求,那这个时候容器里产生的有是几个servlet实例呢?答案:引子:一个web容器,可以有多个servlet。 对提交到同一个servlet类的多个业务请求,共享一个servlet对象

2016-08-26 16:17:31 3189 1

原创 java中native是关键字

在java中native是关键字。它一般在本地声明,异地用C和C++来实现。它的声明有几点要注意:1)native与访问控制符前后的关系不受限制。2)必须在返回类型之前。3)它一般为非抽象类方法。4)native方法在异地实现,象抽象方法一样,所以没有方法体,以分号结束。如下列5种声明:         native public void f();

2016-08-26 14:46:57 886

原创 缓存雪崩和缓存穿透和缓存失效

我们在用缓存的时候,不管是Redis或者Memcached,基本上会通用遇到以下三个问题:缓存穿透缓存并发缓存失效一、缓存穿透我们在项目中使用缓存通常都是先检查缓存中是否存在,如果存在直接返回缓存内容,如果不存在就直接查询数据库然后再缓存查询结果返回。这个时候如果我们查询的某一个数据在缓存中一直不存在,就会造成每一次请求都查询DB,这样缓存就失去了意义,在流量大时,可能DB

2016-08-25 17:13:55 556

原创 多线程共享数据

一.目标谈到多线程共享数据,理想情况下我们希望做到“同步”和“互斥”。这是目标我们暂且把它先放到这。二.分类多线程共享数据通常的场景有一下两种:场景一:卖票,我们都买过火车票。要买火车票我们可以去车站,也可以通过代售点(或网购),但不管有多少种方式火车票的总数是一定的。场景抽象:对于卖票系统每个线程的核心执行的代码都相同(就是票数–)。

2016-08-25 11:02:19 573

原创 Java代码优化细节

前言2016年3月修改,结合自己的工作和平时学习的体验重新谈一下为什么要进行代码优化。在修改之前,我的说法是这样的:就像鲸鱼吃虾米一样,也许吃一个两个虾米对于鲸鱼来说作用不大,但是吃的虾米多了,鲸鱼自然饱了。 代码优化一样,也许一个两个的优化,对于提升代码的运行效率意义不大,但是只要处处都能注意代码优化,总体来说对于提升代码的运行效率就很有用了。这个观点,在现在看来

2016-08-24 21:33:16 2417

转载 技术博客网站推荐

技术博客网站推荐这里收集技术博客和网站,欢迎大家fork和pull requests综合伯乐在线博客 是一个IT互联网职业社区。为IT互联网行业的企业和个人提供服务。网站目前包括:博客、聚合资讯、小组、资源/工具导航 和编程挑战。伯乐在线-博客( blog.JobBole.com )专注于分享职业相关的博客文章、业界资讯和职业相关的优秀工具和资源。博文类别包括:

2016-08-24 20:10:10 625

原创 序列化下的单列模式解决

在解决单列模式序列化中提到一个问题,即 readResolve方法是干啥的? 当时也没多想, 只是列在那里, 今天忙里偷闲地把搜点材料整理下这个问题.原来这个方法跟对象的序列化相关(这样倒是解释了为什么 readResolve方法是private修饰的). ??? 怎么跟对象的序列化相关了?下面我们先简要地回顾下对象的序列化. 一般来说, 一个类实现了 Serializable接口

2016-08-24 16:30:31 411

转载 高并发下线程安全的单例模式

在所有的设计模式中,单例模式是我们在项目开发中最为常见的设计模式之一,而单例模式有很多种实现方式,你是否都了解呢?高并发下如何保证单例模式的线程安全性呢?如何保证序列化后的单例对象在反序列化后任然是单例的呢?这些问题在看了本文之后都会一一的告诉你答案,赶快来阅读吧!什么是单例模式?在文章开始之前我们还是有必要介绍一下什么是单例模式。单例模式是为确保一个类只有一个实例,并为整个系统提供一

2016-08-24 16:19:32 595

原创 华为OJ 查找组成一个偶数最接近的两个素数

华为OJ 查找组成一个偶数最接近的两个素数 题目描述如下: 以下为我使用Java的具体实现:import java.util.Scanner;public class Main { public static void main(String[] args){ Scanner scanner=new Scanner(System.in);

2016-08-22 22:18:05 410

原创 https和http区别

SSL协议1.SSL协议(安全套接字协议)是Web浏览器与Web服务器之间安全交换信息的协议2.SSL协议的三个特性保密:在握手协议中定义了会话的密钥后,所有的消息都被加密鉴别:可选的客户端验证,和强制的服务器端验证完整性:传送的消息包括消息完整性检查SSL的位置 HTTPS协议HTTPS协议就是基于SSL的HTTP协议HTTPS使用与HTTP不

2016-08-22 20:35:03 426

转载 缓存架构设计的几个问题

本文主要讨论这么几个问题:(1)“缓存与数据库”需求缘起(2)“淘汰缓存”还是“更新缓存”(3)缓存和数据库的操作时序(4)缓存和数据库架构简析 一、需求缘起场景介绍缓存是一种提高系统读性能的常见技术,对于读多写少的应用场景,我们经常使用缓存来进行优化。例如对于用户的余额信息表account(uid, money),业务上

2016-08-22 16:47:43 736

转载 缓存与数据库不一致的解决方案

本文主要讨论这么几个问题:(1)啥时候数据库和缓存中的数据会不一致(2)不一致优化思路(3)如何保证数据库与缓存的一致性 一、需求缘起上一篇《缓存架构设计细节二三事》(点击查看)引起了广泛的讨论,其中有一个结论:当数据发生变化时,“先淘汰缓存,再修改数据库”这个点是大家讨论的最多的。上篇文章得出这个结论的依据是,由于操作缓存与操作

2016-08-22 16:38:00 12485 1

转载 ConcurrentHashMap关于方法的深度解析

还记得大学快毕业的时候要准备找工作了,然后就看各种面试相关的书籍,还记得很多面试书中都说到:HashMap是非线程安全的,HashTable是线程安全的。那个时候没怎么写Java代码,所以根本就没有听说过ConcurrentHashMap,只知道面试的时候就记住这句话就行了…至于为什么是线程安全的,内部怎么实现的,通通不了解。今天我们将深入剖析一个比HashTable性

2016-08-21 17:07:19 7215 2

转载 Java 字符串拼接效率比较

1 字符串拼接的三种方法① 加号 ② concat方法 ③ StringBuilder(或StringBuffer)的append方法2 程序例子package com.jtzen9;public class Main { public static void main(String[] args) { String str = "a";

2016-08-19 13:30:51 612

转载 斐波那契数列

斐波那契数列之递归一、什么是斐波那契数列斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*),斐波那契数列最初是为了计算兔子的出生数量而出现的,所以也叫“兔子数列”!二、什么是递归递归的本质

2016-08-17 13:54:04 740

原创 jvm类的加载过程

1.类的加载过程  JVM将类加载过程分为三个步骤:装载(Load),链接(Link)和初始化(Initialize)链接又分为三个步骤,如下图所示:1) 装载:查找并加载类的二进制数据;2)链接:验证:确保被加载类的正确性;准备:为类的静态变量分配内存,并将其初始化为默认值;解析:把类中的符号引用转换为直接引用;3)初始

2016-08-13 21:25:53 401

转载 经典问题总结

一、Java基础1. 实例方法和静态方法有什么不一样?2. Java中的异常有哪几类?分别怎么使用?3. 常用的集合类有哪些?比如List如何排序?4. ArrayList和LinkedList内部的实现大致是怎样的?他们之间的区别和各自适应的场景是什么?5. 内存溢出是怎么回事?6. ClassLoader有什么用?7. ==和equals

2016-08-12 16:19:30 2929

转载 JDK中所包含的设计模式

本文主要是归纳了JDK中所包含的设计模式,包括作用和其设计类图。首先来个总结,具体的某个模式可以一个一个慢慢写,希望能对研究JDK和设计模式有所帮助。一、设计模式是什么(1)反复出现问题的解决方案(2)增强软件的灵活性(3)适应软件不断变化二、学习JDK中设计模式的好处(1)借鉴优秀代码的设计,有助于提高代码设计能力(2)JDK的设计中体现了大多数设计模式,

2016-08-11 16:34:21 1910

转载 java设计模式—策略模式

背景在软件开发中常常遇到这种情况,实现某一个功能有多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能。如查找、排序等,一种常用的方法是硬编码(Hard Coding)在一个类中,如需要提供多种查找算法,可以将这些算法写到一个类中,在该类中提供多个方法,每一个方法对应一个具体的查找算法;当然也可以将这些查找算法封装在一个统一的方法中,通过if…else…或者c

2016-08-11 16:28:40 301

转载 java设计模式—迭代器模式

定义:提供一种方法访问一个容器对象中各个元素,而又不暴露该对象的内部细节。类型:行为类模式类图: 1 public static void main(String[] args) { 2 List list = new ArrayList(); 3 list.add("a"); 4 list.add("b")

2016-08-11 16:12:51 282

转载 java设计模式—原型模式

定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。类型:创建类模式类图:原型模式主要用于对象的复制,它的核心是就是类图中的原型类Prototype。Prototype类需要具备以下两个条件:实现Cloneable接口。在java语言有一个Cloneable接口,它的作用只有一个,就是在运行时通知虚拟机可以安全地在实现了此接口的类上使用clo

2016-08-11 16:05:21 413

转载 java设计模式—装饰者模式

目录用途装饰者模式 (Decorator)动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator 模式相比生成子类更为灵活。 装饰者模式是一种结构式模式。 结构图-装饰者模式结构图 Component : 定义一个对象接口,可以给这些对象动态地添加职责。interface

2016-08-11 15:54:35 313

原创 Servlet生命周期及运行过程

1.Servlet是什么?Servlet是sun公司制订的一种用于扩展web服务器功能的组件规范。       扩展方式:早期采用CGI(common gateway interface)技术。因采用 cgi程序编写的代码,可移植性差、编程相当复杂。       现在,采用的是【容器+组件】的方式来扩展。       【组件:】符合规范,实现特定功能,并且可以部署在

2016-08-10 20:51:40 666

原创 java内存模型

为什么学习Java的内存模式缓存一致性问题什么是内存模型JMM(Java Memory Model)简介volatitle关键字原子性可见性有序性指令重排先行发生——happen-before原则解释执行和编译执行其他语言(c和c++)也有内存模型么?   为什么需要关注Java内存模型?   之前有一个我实习的同事(已经工作的)反讽我:学(关注)这个有什么用?

2016-08-10 15:55:15 657

转载 剑指Offer—编程题9(斐波那契数列)

O(n)时间O(1)空间实现:[java] view plain copy print?public class Test09 {        /**      * 写一个函数,输入n,求斐波那契(Fibonacci) 数列的第n项      * @param n Fibonacci数的项数      * @return

2016-08-09 21:53:20 409

转载 剑指Offer—编程题24(二叉搜索树的后序遍历序列)

题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true。否则返回false。假设输入的数组的任意两个数字都互不相同。解题思路:在后序遍历得到的序列中, 最后一个数字是树的根结点的值。数组中前面的数字可以分为两部分: 第一部分是左子树结点的值,它们都比根结点的值小: 第二部分是右子树结点的值,它们都比根结点的值大。代码实现:public c

2016-08-09 21:07:22 333

原创 mybatis中#{}和${}传参的区别

MyBatis中使用parameterType向SQL语句传参,parameterType后的类型可以是基本类型int,String,HashMap和java自定义类型。在SQL中引用这些参数的时候,可以使用两种方式#{parameterName}或者${parameterName},   首先,我们说一下这两种引用参数时的区别,使用#{parameterName}引用参数的时候,

2016-08-07 20:35:16 621 3

原创 mybatis如何防止sql注入

sql注入大家都不陌生,是一种常见的攻击方式,攻击者在界面的表单信息或url上输入一些奇怪的sql片段,例如“or ‘1’=’1’”这样的语句,有可能入侵参数校验不足的应用程序。所以在我们的应用中需要做一些工作,来防备这样的攻击方式。在一些安全性很高的应用中,比如银行软件,经常使用将sql语句全部替换为存储过程这样的方式,来防止sql注入,这当然是一种很安全的方式,但我们平时开发中,可能不需要这种

2016-08-07 20:24:30 438

转载 轻松搞定面试中的二叉树题目

树是一种比较重要的数据结构,尤其是二叉树。二叉树是一种特殊的树,在二叉树中每个节点最多有两个子节点,一般称为左子节点和右子节点(或左孩子和右孩子),并且二叉树的子树有左右之分,其次序不能任意颠倒。二叉树是递归定义的,因此,与二叉树有关的题目基本都可以用递归思想解决,当然有些题目非递归解法也应该掌握,如非递归遍历节点等等。本文努力对二叉树相关题目做一个较全的整理总结,希望对找工作的同学有所帮助。

2016-08-07 13:28:15 911

原创 P.V操作原语和信号量(搜狐面试题)

PV操作原语和信号量sem是计算机操作系统进程和线程同步的核心手段,虽然说起来只有句话,但有几个点非常容易引起模糊。先把PV操作的说明如下:P操作原语:1. sem 减12. 若sem 大于等于0,线程继续执行.3. 若sem V 操作原语:1. sem加12. 若sem 大于 0, 线程继续执行3. 若sem 小于等于0,唤醒阻塞队

2016-08-07 13:01:22 4451

原创 乐观锁与悲观锁

在多用户环境中,在同一时间可能会有多个用户更新相同的记录,这会产生冲突。这就是著名的并发性问题。典型的冲突有:l 丢失更新:一个事务的更新覆盖了其它事务的更新结果,就是所谓的更新丢失。例如:用户A把值从6改为2,用户B把值从2改为6,则用户A丢失了他的更新。l 脏读:当一个事务读取其它完成一半事务的记录时,就会发生脏读取。例如:用户A,B看到的值都是6,用户B把值改为2,用

2016-08-07 12:47:51 336

JavaEE开发的颠覆者 Spring Boot实战 完整版.pdf

JavaEE开发的颠覆者 Spring Boot实战 完整版.pdf JavaEE开发的颠覆者 Spring Boot实战 完整版.pdf JavaEE开发的颠覆者 Spring Boot实战 完整版.pdf JavaEE开发的颠覆者 Spring Boot实战 完整版.pdf JavaEE开发的颠覆者 Spring Boot实战 完整版.pdf

2018-03-21

完整版W3CSchool线下教程.

完整版W3CSchool线下教程.很不错的在线文档 对查询有很大帮助

2014-12-17

韩顺平_Javascript笔记完整版

韩顺平_Javascript笔记完整版 跟上课一样 很不错的

2014-12-17

《韩顺平轻松搞定网页设计》DIV+CSS学习笔记

跟上课的笔记一样,对于web开发初学者很有用对于web开发初学者很有用

2014-12-17

空空如也

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

TA关注的人

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