`
文章列表
“ 一直以来双十一都是以交易为重心,2015年当然也是如此,但是这并不妨碍万能的淘宝将双十一打造的让用户更欢乐、体验更丰富、玩法更多样、内容更有趣。因此,2015年诞生了以直播为特色的游戏双十一会场,也就是本文所要着笔重点介绍的,阿里直播平台在双十一所面临的复杂技术挑战以及技术选型的台前幕后。 大流量、高并发场景下,大型直播的技术挑战一般体现在如下几个方面: 视频流的处理、分发 播放质量保障 视频可用性监控
原文http://www.iteye.com/topic/806990   最近想将java基础的一些东西都整理整理,写下来,这是对知识的总结,也是一种乐趣。已经拟好了提纲,大概分为这几个主题: java线程安全,java垃圾收集,java并发包详细介绍,java profile和jv ...

线程安全(2)

 站内很多人都问我,所谓线程的“工作内存”到底是个什么东西?有的人认为是线程的栈,其实这种理解是不正确的。看看JLS(java语言规范)对线程工作 内存的描述,线程的working memory只是cpu的寄存器和高速缓存的抽象描述。         可能 很多人都觉得莫名其妙,说JVM的内存模型,怎么会扯到cpu上去呢?在此,我认为很有必要阐述下,免 得很多人看得不明不白的。先抛开java虚拟机不谈,我们都知道,现在的计算机,cpu在计算的时候,并不总是从内存读取数据,它的数据读取顺序优先级 是:寄存器-高速缓存-内存。线程耗费的是CPU,线程计算的时候,原始的数据来自内存,在计算过程 ...

static代码块

通过static代码块在类被首次加载时候执行一次这个特性,可以起到一个初始化加载的作用; 初始化查询数据库,执行loadSchoolOrigoInfo()查询数据库,后续查询只需要查找静态变量schoolOrigoInfo 中的数据。 public class SchoolOrigoManager { @SuppressWarnings("unchecked") private static ConcurrentHashMap schoolOrigoInfo; static { System.out.println("---------加载学校籍贯 ...
使用小海豚连接,报错:ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql' 从网上找了资料,亲测可行,记录如下。 首先执行 # service mysqld stop  # mysqld_safe --skip-grant-tables &&,表示在后台运行,不再后台运行的话,就再打开一个终端咯。# mysqlmysql> use mysql;mysql> UPDATE user SET password=password("test123&quo ...
原文  http://itindex.net/detail/51366-java-多线程-消息队列   1、定义一个队列缓存池: private static List<Queue> queueCache = new LinkedList<Queue>(); 2、定义队列缓冲池最大消息数,如果达到该值,那么队列检入将等待检出低于该值时继续进行。 private Integer offerMaxQueue = 2000;

转内存回收机制

    博客分类:
  • jvm
在Java中,它的内存管理包括两方面:内存分配(创建Java对象的时候)和内存回收,这两方面工作都是由JVM自动完成的,降低了Java程序员的学习难度,避免了像C/C++直接操作内存的危险。但是,也正因为内存管理完全由JVM负责,所以也使Java很多程序员不再关心内存分配,导致很多程序低效,耗内存。因此就有了Java程序员到最后应该去了解JVM,才能写出更高效,充分利用有限的内存的程序。 1.Java在内存中的状态 首先我们先写一个代码为例子: Person.java

java classloader原理

    博客分类:
  • jvm
一、什么是ClassLoader? 大家都知道,当我们写好一个Java程序之后,不是管是CS还是BS应用,都是由若干个.class文件组织而成的一个完整的Java应用程序,当程序在运行时,即会调用该程序的一个入口函数来调用系统的相关功能,而这些功能都被封装在不同的class文件当中,所以经常要从这个class文件中要调用另外一个class文件中的方法,如果另外一个文件不存在的,则会引发系统异常。而程序在启动的时候,并不会一次性加载程序所要用的所有class文件,而是根据程序的需要,通过Java的类加载机制(ClassLoader)来动态加载某个class文件到内存当中的,从而只有class ...

linux常用命令

1、给文件加权限(只有所有者拥有读、写及执行权限的时候可以执行) chomd 700 XXX chmod a-w /home/user  去除写权限 2、分区扩容 首先 执行 df -h 查询分区对应的磁盘 lvextend -L +10G /dev/VolGroup/LogVol01 resize2fs  /dev/VolGroup/LogVol01 3、查看硬盘大小 fdisk -l | grep Disk 4、查看内存总和 cat /proc/meminfo | grep MemTotal 5、查看CPU核数 /型号 cat /proc/cpuinfo | gr ...
要离职了,一些资料做个备份,以后可能用得到。 由于in效率比较低,实测当in里面数据超过1000条会报错。 exists用法 select * from zhp_register_info t where exists(select 1 from zhp_register_info s where s.consumer_name=‘小米' and s.id = t.id); max decode用法 查询出login_name为 99324623的用户名(如果不存在则为空) select max(decode(t.login_name,'qq324623',t.consumer_n ...
输出前 加上这个 response.setCharacterEncoding("UTF-8"); response.setContentType("application/json");
 @RequestMapping不但支持标准的URL,还支持Ant风格(即?、*和**的字符,参见3.3.2节的内容)的和带{xxx}占位符的URL。以下URL都是合法的:user/*/createUser    匹配/user/aaa/createUser、/user/bbb/createUser等URL。 /user/**/createUser      匹配/user/createUser、/user/aaa/bbb/createUser等URL。 /user/createUser??      匹配/user/createUseraa、/user/createUse ...
Servlet生命周期分为三个阶段:   1,初始化阶段  调用init()方法   2,响应客户请求阶段  调用service()方法   3,终止阶段  调用destroy()方法   Servlet初始化阶段:   在下列时刻Servlet容器装载Servlet:     1,Servlet容器启动时自动装载某些Servlet,实现它只需要在web.XML文件中的<Servlet></Servlet>之间添加如下代码: <loadon-startup>1</loadon-startup>     2
转自 http://www.cnblogs.com/AloneSword/p/4262255.html   JVM内存模型总体架构图 程序计数器多线程时,当线程数超过CPU数量或CPU内核数量,线程之间就要根据时间片轮询抢夺CPU时间资源。因此每个线程有要有一个独立的程序计数器,记录下一条要运行的指令。线程私有的内存区域。如果执行的是JAVA方法,计数器记录正在执行的java字节码地址,如果执行的是native方法,则计数器为空。虚拟机栈线程私有的,与线程在同一时间创建。管理JAVA方法执行的内存模型。每个方法执行时都会创建一个桢栈来存储方法的的变量表、操作数栈、动态链接方法、返回值 ...
转自http://blog.csdn.net/xubo578/article/details/6919515 堆栈这个概念存在于数据结构中,也存在于jvm虚拟机中,在这两个环境中是截然不同的意思。 在数据结构中,堆栈是:堆 和栈两种数据结构,堆是完全二叉树,堆中各元素是有序的。在这个二叉树中所有的双亲节点和孩子节点存在着大小关系,如所有的双亲节点都大于孩子节点则 为大头堆,如果所有的双亲节点都小于其孩子节点说明这是一个小头堆,建堆的过程就是一个排序的过程,堆得查询效率也很高。栈是一种先进后出的线性表。 在jvm虚拟机中得堆栈对应内存的不同区域,和数据结构中所说的堆栈是两码事。 下面介绍 ...
Global site tag (gtag.js) - Google Analytics