`
文章列表
服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种: (1)同步阻塞IO(Blocking IO):即传统的IO模型。 (2)同步非阻塞IO(Non-blocking IO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。注意这里所说的NIO并非Java的NIO(New IO)库。 (3)IO多路复用(IO Multiplexing):即经典的Reactor设计模式,有时也称为异步阻塞IO,Java中的Selector和Linux中的epoll都是这种模型。
RandomAccessFile RandomAccessFile是用来访问那些保存数据记录的文件的,你就可以用seek( )方法来访问记录,并进行读写了。这些记录的大小不必相同;但是其大小和位置必须是可知的。但是该类仅限于操作文件。RandomAccessFile不属于Inp ...
转自:http://www.iteye.com/topic/679030 引子 先说一下为什么写这一篇小文章,最近不少同事是在问一个问题,为什么Ant编译出的代码在日志里的出错异常栈看不到行号信息,每次如果在定位问题,都需要用eclipse重新将相应的jar包编译一下,再放到问题环境上重现一下,这样再看日志才可以。而且使用ant生成的包就算是远程调试也不可用,断点总是打不上。   一般的开发都会有一套持续集成的环境,用作每日构建,用ant或是其他工具,开发人员一般用Eclipse或其他的IDE做开发,所以经常会遇见上面的问题。   原因 ant的javac任务里有对debug信 ...
java -verbose[:class|gc|jni] 在输出设备上显示虚拟机运行信息。 1.java -verbose:class 在程序运行的时候究竟会有多少类被加载呢,一个简单程序会加载上百个类的!你可以用verbose:class来监视,在命令行输入java -verbose:class XXX  (XXX为程序名)你会在控制台看到加载的类的情况。  verbose和verbose:class含义相同,输出虚拟机装入的类的信息,显示的信息格式如下: [Loaded java.io.FilePermission$1 from shared objects file] 当虚拟机报告 ...
转自:http://www.majin163.com/2014/03/17/synchronized1/   引言 JAVA是一门极易入门的语言,这一点尤其表现在JAVA中对象锁的使用和多线程编程上。所谓对象锁,就是可以直接在JAVA的任意Object加 锁(synchronized),也可以在通过任意Object ...
转自:http://www.majin163.com/2014/03/17/synchronized2/ 这里我们来聊聊synchronized,以及wait(),notify()的实现原理。 在深入介绍synchronized原理之前,先介绍两种不同的锁实现。 阻塞锁 我们平时说的锁都是通过阻塞线程来实现的:当出现锁 ...
1. 首先String不属于8种基本数据类型,String是一个对象。 因为对象的默认值是null,所以String的默认值也是null;但它又是一种特殊的对象,有其它对象没有的一些特性。 2. new String()和new String(“”)都是申明一个新的空字符串,是空串不是null;
软件包 java.lang.management 提供管理接口,用于监视和管理 Java 虚拟机以及 Java 虚拟机在其上运行的操作系统。   接口摘要   ClassLoadingMXBean 用于 Java 虚拟机的类加载系统的管理接口。 CompilationMXBean 用于 Java 虚拟机的编译系统的管理接口。 GarbageCollec
检测虚拟机当前的状态总是 Java 开放人员所关心的,也正是因为如此,出现了大量的 profiler 工具来检测当前的虚拟机状态。从 Java SE 5 之后,在 JDK 中,我们有了一些 Java 的虚拟机检测 API,即 java.lang.management包。 Management 包里 ...
 Cache 一致性问题单核 Cache 中每个 Cache line 有2个标志:dirty 和 valid 标志,它们很好的描述了 Cache 和 Memory 之间的数据关系(数据是否有效,数据是否被修改),而在多核处理器中,多个核会共享一些数据。  只有 Core 0 访问变 ...
转自:http://www.php-oa.com/2014/10/22/github-operation.html 因为我 Fork 了 Mojo 的项目,这样才学会了如何使用 github. 因为其它一些项目是自己创建的,也就学不会怎么和其它团队合作。 现在给这部分不一样的经验分享给大家。希望有利于 ...
val file1 = scala.io.Source.fromFile("D:/IDEAWorkSpace/SparkJob/input.txt").mkString       println(file1)       val sss = scala.io.Source.fromFile(new java.io.File("D:/IDEAWorkSpace/SparkJob/input.txt")).getLines       val aa = sss.toList       for(line <-aa ){         println ...
转自:https://www.zybuluo.com/jewes/note/35032 RDD是什么? RDD是Spark中的抽象数据结构类型,任何数据在Spark中都被表示为RDD。从编程的角度来看,RDD可以简单看成是一个数组。和普通数组的区别是,RDD中的数据是分区存储的,这样不同分区的数据就可以分布在不同的机器上,同时可以被并行处理。因此,Spark应用程序所做的无非是把需要处理的数据转换为RDD,然后对RDD进行一系列的变换和操作从而得到结果。本文为第一部分,将介绍Spark RDD中与Map和Reduce相关的API中。 如何创建RDD? RDD可以从普通数组创建出来,也可以从 ...
转自:http://blog.javachen.com/2015/04/20/basic-of-scala.html 本文主要包括Scala的安装过程并理解Scala的基本语法和概念,包括表达式、变量、基本类型、函数、流程控制等相关内容。 1. 安装 从All Versions Scala下载所需版本Scala安装包,解压到指定目录之后,配置环境变量并使其生效。 如果你使用Mac,则可以使用brew安装: ⇒  brew install scala 在终端键入scala查看Scala的版本,并进入Scala的解释器: ⇒  scala Welcome to Scala version ...
nginx有一个非常灵活的日志记录模式。每个级别的配置可以有各自独立的访问日志。日志格式通过log_format命令来定义。ngx_http_log_module是用来定义请求日志格式的。 1. access_log指令 语法: access_log path [format [buffer=size [flush=time]]]; 复制代码 代码如下: access_log path format gzip[=level] [buffer=size] [flush=time]; access_log syslog:server=address[,parameter=value] [for ...
Global site tag (gtag.js) - Google Analytics