
思想与随笔
历史思想与随笔
随风九天
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
计数排序
当输入的元素是n个0到k之间的整数时,原创 2014-09-26 08:37:06 · 399 阅读 · 0 评论 -
二分查找笔记
二分查找import java.util.Arrays;public class BinarySearch{public static int rank(int key, int[] a){ // 数组必须是有序的int lo = 0;int hi = a.length - 1;while (lo <= hi){ // 被查找的键要么不存在,要么必然存在于a[lo.....原创 2018-02-10 10:09:49 · 169 阅读 · 0 评论 -
散列表
散列表为了提供对内存中存储的数据项的快速,随机访问。原创 2011-03-21 16:40:00 · 509 阅读 · 0 评论 -
三千高并发性能优化
1总体1.1环境3台64核的应用服务器,每个应用服务器部署4个节点; 一台数据库服务器; 3个负载均衡Nginx,每个Nginx导向4个节点。2 优化处理2.1 日志高并发大量的系统日志将导致系统堵塞,日志只开启error级别,或者日志在另一线程批量处理。2.2 号段为了保持一个编号不重复,每次获取都到数据库中加1,这样将导致资源竞争锁住,调整为每次取一批号段,...原创 2018-06-03 15:01:23 · 2060 阅读 · 0 评论 -
高并发异步和缓冲队列
1概述高并发时,复杂的任务要异步化,线程池满了后不会拒绝添加任务,需要有个缓冲队列机制。1.1 代码如下public final class ThreadPool { /** * LOG. */ private static final ILog LOG = LogFactory.getLog(ThreadPool.class); ...原创 2018-05-20 15:33:08 · 5304 阅读 · 0 评论 -
openresty集群负载均衡
1 window下安装1.1下载https://github.com/LomoX-Offical/nginx-openresty-windows1.2 解压启动解压到 D盘, 打开目录,双击nginx.exe, 没有效果,查看日志 D:\nginx\logs\error.log,发现如下错误: bind() to 0.0.0.0:80 failed (10013: A...原创 2018-03-24 00:14:32 · 3271 阅读 · 0 评论 -
并发编程
1 Semaphore 使用Semaphore又称信号量,是操作系统中的一个概念,在Java并发编程中,信号量控制的是线程并发的数量。原创 2018-08-04 07:26:45 · 183 阅读 · 0 评论 -
动态模型
hibernate 3 同时还提供了另一种与实体无关的映射方式:动态模型。所谓“动态模型”,即通过通用数据容器(如Map)对库表记录进行表达。最简单的例子:以一个HashMap实例表单某条库表记录,HashMap实例中怡“键值对”的形式保存了库表记录中的“字段名/字段值”信息。class节点的配置发生了变化,由于动态模型中不存在特定的实体类,这里我们引入了一个新的属性:entity-nam原创 2012-04-17 21:57:06 · 478 阅读 · 0 评论 -
Configuration
1 Configuration 在实例化时将默认加载 classPath (类路径)中的 hibernate.cfg.xml 文件或 (hibernate.properties) 2 addFile 增加hbm文件, addClass 增加对应类的对应配置文件。 3 推荐使用xml形式的配置文件。原创 2012-04-16 21:03:09 · 386 阅读 · 0 评论 -
实体层次设计
继承关系是关系型数据与面向对象数据结构之间的主要差异之一。Hibernate中支持3种类型的继承形式:1 表与子类之间的独立一对一关系。2 每个子类对应一张子表,并与主类共享主表。3 表与类的一对多关系。原创 2012-04-19 07:13:35 · 349 阅读 · 0 评论 -
不提倡业务逻辑主键引入库表
将业务逻辑主键引入库表,将使得底层库表结构与业务逻辑相耦合,之后业务逻辑的变化,将很可能对底层数据库结构产生连带影响。典型的情况,如系统开发初期,业务逻辑任务系统中用户名不可重复,但随着需求的变化,出现了用户名可重复的新需求,这样的变化将迫使我们对底层数据库进行修改。在某些关键系统中,这样的变更将难以承受。原创 2012-04-17 22:32:19 · 631 阅读 · 0 评论 -
hibernate创建时间和修改时间注解
1 创建时间 /** * 创建时间 */ @Column(updatable = false) @Temporal(TemporalType.TIMESTAMP) @org.hibernate.annotations.CreationTimestamp private Date createDate;2 修改时间 /** * 最后时间 */ @Temporal...原创 2019-09-26 03:49:52 · 783 阅读 · 0 评论 -
Druid集成
1. 环境依赖1.1 DruidJar下载地址:http://repo1.maven.org/maven2/com/alibaba/druid/ 官方文档地址:https://github.com/alibaba/druid/wiki原创 2017-06-03 07:10:03 · 684 阅读 · 0 评论 -
SessionFactory
SessionFactory 一个应用一个数据库一个。 SessionFactory 创建代价昂贵。 SessionFactory 管理着二级缓存 和 语句池。 SessionFactory 是线程安全的。 SessionFactory保存了对应当前数据库的所有映射关系。原创 2012-04-16 20:43:22 · 424 阅读 · 0 评论 -
Hibernate主键生成方式
1 Assigned 指派 主键由应用逻辑产生,数据交由Hibernate保存。2 hilo 通过 hi/lo算法实现的主键生成机制,需要额外的数据库表保存主键生成历史状态。3 seqhilo 与hilo类似,通过hi/lo算法实现的主键生成机制,只是主键历史状态保存在Sequence中,使用于支持Sequence的数据库,如oracle.4 increme原创 2012-04-17 07:17:56 · 323 阅读 · 0 评论 -
动态模型
1 动态模型1.1 说明动态模型是指模型的属性是不固定的,可以添加和变更;也指不同模型,可以增加模型。不同模型在存储上为了性能和隔离,使用不同的表。但逻辑编写为了复用,一般使用同一个java类型。以下介绍如何对应。1.2 java类java类分固定属性和动态属性,固定属性直接建立属性即可,动态属性使用map类型。例如下面例子:public class Dynamic...原创 2018-03-15 21:07:24 · 4940 阅读 · 0 评论 -
Session
Session 是持久化管理核心,非线程安全。 Query 和 Criteria 作为 hibernate 数据查询接口, Query 面向 HQL 和 SQL。而 Criteria 提供了面向对象的查询。原创 2012-04-16 20:47:38 · 304 阅读 · 0 评论 -
Java 锁
一 简单锁 锁可以比 synchronized同步块更复杂,是同步块使用模式的一些封装,下面介绍一个简单的锁对象。 public class Lock {/*** 是否锁住*/private boolean isLocked = false;/*** 锁住* * @throws Interrupt原创 2017-11-02 01:13:35 · 245 阅读 · 0 评论 -
乐观锁和悲观锁
1、悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证外部系 统不会修改数据)。2、乐观锁( Optimistic Locking ) 相对悲观锁而言,乐观锁机制采取了更加宽松的加锁机制。悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度原创 2011-03-21 16:09:00 · 3221 阅读 · 4 评论 -
共享和可变概念
所谓共享,是指一个变量可以被多个现场访问;所谓可变,是指变量的值在其生命周期内可以改变。我们讨论的线程安全性好像是关于代码的,但是我们真正要做的,是在不可控制的并发访问中保护数据。原创 2011-03-22 10:02:00 · 611 阅读 · 0 评论 -
2016-5-23计划
本日的工作计划如下: 1 单据关联流程。(单据2.0,单据3.0) 2 作废行为。原创 2016-05-23 21:36:58 · 336 阅读 · 0 评论 -
面向对象考题收集
3.下列不属于面向对象技术的基本特征的是( B )。 A. 封装性 B. 模块性 C. 多态性 D. 继承性原创 2017-06-10 09:29:14 · 10054 阅读 · 0 评论 -
高扩展性网站的50条原则(笔记)
1 化简方程任何大问题,只要分拆方法正确,都不过是一系列有待解决的小问题的集合。1.1 原则1 :不要过度设计复杂的解决方案实施成本高,而且会产生大量长期成本。过度复杂的系统会限制扩展能力。简单的系统更容易维护和扩展,且成本更低。过度设计分为两大类。一类是指设计与实现超出了有用需求的产品。 范围蔓延,或者最初产品定义和最初的产品发布之间的范围差异,是过度设计的一种表现。过...原创 2018-03-17 08:20:16 · 642 阅读 · 0 评论 -
为什么正常进展却看不出有成果
本团队在开发一个新的产品,发现每周的计划都是完成,但持续了一段时间,回顾一下该产品的进展,又感觉没有出多大的成绩。这里就涉及到一个问题,为什么团队忙着,但汇报的时候,无法体现出有利的成果?时间都去了哪里? 这里个人有几点见解: 1 产品和项目开发要有项目计划和开发进度计划,有目标导向,有里程碑。 2 产品过程中原创 2016-05-23 20:58:33 · 349 阅读 · 0 评论 -
在标题显示图片
加入一下代码位置:原创 2010-12-31 19:44:00 · 559 阅读 · 0 评论 -
DDD应用于微服务划分
1 介绍引入随着互联网应用的发展,在敏捷快速迭代、高可用、高性能、高并发等方面要求越来越高,传统的SOA分布式架构并不适合这种场景,互联网最新流行且最佳的实践方式就是微服务化。而微服务的首要问题是微服务如何拆分。现在很多的微服务开发团队在设计和实现微服务的时候觉得只要把原来的单体拆小,就是微服务了。但是这不一定是正确的微服务,可能只是一个拆小的小单体。而这种拆分真的能够给我们带来微服务架构的那...原创 2019-08-10 07:17:46 · 1535 阅读 · 0 评论 -
没有行动=一事无成
没有行动=一事无成 学习某种语言的基础是一回事,但是知道如何有效使用这个语言进行程序设计则完全是另外一回事。原创 2010-09-20 12:38:00 · 1154 阅读 · 0 评论