`
youyu4
  • 浏览: 425478 次
社区版块
存档分类
最新评论
文章列表
java -- 排序算法            查找和排序算法是算法的入门知识,其经典思想可以用于很多算法当中。因为其实现代码较短,应用较常见。所以在面试中经常会问到排序算法及其相关的问题。但万变不离其宗,只要熟悉了思想 ...
java -- 数据结构总结     概念   数据结构:数据之间的关系,提高程序效率。     逻辑关系:认为认为   集合:在一个范围内有多个数据,数据之间没有关系 线性:一对一关系 树形:一对多 图:多对多     物理关系:内存存储   顺序存储:数组 链式存储:链表     问题   数据结构难不难?    容易但很难 有没有用?               有用且没有用,平时工作可能用不上,但是能够学习编程思想         算法   大数字存储,大数字的运算  
java多线程之面试题     怎么理解多线程?   1. 让应用程序在一个时间段做多个事情,提高效率 2. 可以实现异步的效果,主线程马上返回成功,子线程继续去工作       程序、进程、线程的关系   一个程序,就有一个进程,一个进程中可以有多个线程,其中又分为主线程和子线程。       理解并发与并行   并发:通过CPU调度算法,让用户看上去同时执行,实际上,是通过CPU在高速切换,并不是真正的额同时 并行:多个CPU实例或者多台机器同时执行一段处理逻辑,这就是真正的同时;       如何创建线程?   1. 继承Thread ...
java多线程之阻塞队列          阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生产者存放元素的容器,而消费者也只从容器里拿元素。   阻塞队列提供了四种处理方法:     抛出异常:是指当阻塞队列满时候,再往队列里插入元素,会抛出IllegalStateException(“Queue full”)异常。当队列为空时,从队列里 ...
Java多线程之线程池调优   默认配置   corePoolSize=1 queueCapacity=Integer.MAX_VALUE maxPoolSize=Integer.MAX_VALUE keepAliveTime=60s allowCoreThreadTimeout=false rejectedExecutionHandler=AbortPolicy() 缺点   corePoolSize核心线程初始值为1太少了 queueCapacity和maxPoolSize设置这么大,怕线程太多,系统受不了 rejectedExecutionHandle ...
Java多线程之常用类--闭包、栅栏、信号量、FutureTask     闭锁   用途:可用于命令一组线程在同一个时刻开始执行某个任务,或者等待一组相关的操作结束。尤其适合计算并发执行某个任务的耗时。   public class CountDownLatchTest { public void timeTasks(int nThreads, final Runnable task) throws InterruptedException{ final CountDownLatch startGate = new CountDow ...
当Maven无法下载jar该怎么办            有时,我们可能会遇到因为网络原因导致Maven无法下载jar包的情况,这时该怎么办呢,没法干活吖。           方法一:自己硬着头皮下jar包,这是最笨的方法。           方法二:使用Maven镜像服务器,例如,阿里云提供的Maven镜像服务器。       原理:就是修改获取jar包的远程地址        在Maven的settings.xml文件中加入下面代码: <mirrors> <mirror> &l ...
数据库设计 -- 一些技巧     http://www.csdn.net/article/2012-04-11/2804419   http://blog.csdn.net/sirfei/article/details/434994   http://blog.csdn.net/haiross/article/details/50427382   http://blog.csdn.net/tiantiandjava/article/details/45390859
数据库设计 -- 索引设计   什么是索引 索引就是加快检索表中数据的方法,就是为了不想扫描整个表。     索引的优点   大大加快查找数据的速度 建立唯一索引,保证数据表中每一行数据唯一性 进行分组和排序检索时,可以明显地减少时间     索引的缺点   降低增删改的速度 创建和维护索引,需要消耗我们的维护时间 索引还是需要占用到一定的物理空间的       索引分类   按索引方法分   B-Tree索引 Hash索引 按索引类型分       主键索引:一般数据库设置为主键,就会自动加上索引。       普通 ...
数据库设计 -- 外键设计     外键的目的:通过数据库去保证数据的完整性,提高关联查询的效率 外键的副作用:插入或更新的效率下降。       为何说外键有性能问题   数据库需要维护外键的内部管理; 外键等于 ...
数据库设计 -- 主键设计            在数据库设计时,主要就是对实体和关系的设计,实体表现出来就是表,关系表现出来就是外键。而对于一个表,由两部分组成:主键和属性。主键的简单定义就是表中为每一行数据的唯一标识。其实更准确的说法,每一行数据的唯一标识是候选键(Candidate Key),一个表中可以有很多个候选键,主键是候选键中的一个,主要用于更方便的检索和管理数据。一个表中可以有多个候选键,但是只有一个主键。由于主键常常用于检索数据,也用于表之间的关联,所以主键的设计的好坏将会严重影响数据操作的性能。         主键的数据类型   数字类型 固定长 ...
数据库设计 -- 字段的选择     为什么要注意字段的选择?          在数据库设计过程中我们要本着够用的原则,如果一味的把数据字段范围设为最大或者默认值的话,会导致存储空间大量的浪费。在数据量特别大的情况 ...
数据库设计 -- 设计原则            1. 一般情况下,应该尽量使用可以正确存储数据的最小数据类型。数据类型不一样,存储的执行效率也不一样。最好使用适度的整型数据类型,例如int之类的数据,这样在做查询或者字段 ...
数据库设计 -- 表与表的三种关系     一对一       例如:user表和user_detail表,每一个user有一条detail,每一条detail属于一个用户。       表一(user_campaign)       表二(user_campaign_detail)         思路小结:user表和user_detail表,可以给user_detail表中的user_id建立唯一索引,既保证数据的正确性,也能提高查询速度;这里的第一张表的每一行只与第二张表的一行相对应。         提示       一对一关系是比较少见的关系类型 ...
分布式ID生成方法     需求分析       几乎所有的业务系统,都有生成一个记录标识的需求,例如:   消息标识:message-id 订单标识:order-id 帖子标识:tiezi-id     这个记录标识往往就是数据库中的唯一主键,数据库上会建立聚集索引(cluster index)     聚集索引:物理存储上以这个字段排序。 非聚集索引:普通索引,存储的是实际记录的指针,其访问效率会比聚集索引慢,如果记录标识在生成时能够基本按照时间有序。       记录标识生成(也就是上文提到的三个XXX-id)的两大核心需求:   全局唯一 ...
Global site tag (gtag.js) - Google Analytics