`
IXHONG
  • 浏览: 438034 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎。大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发、调试、优化经验,所以线程相关的问题在面试中经常会被提到。   在典型的Java面试中, 面试官会从线程的基本概念问起, 如:为什么你需要使用线程, 如何创建线程,用什么方式创建线程比较好(比如:继承thread类还是调用Runnable接口),然后逐渐问到并发问题像在Java并发编程的过程中遇到了什么挑战,Java内存模型,JDK1.5引入了哪些更高阶的并发工具 ...
本文转载自http://shift-alt-ctrl.iteye.com/blog/1845137   一.类加载        虚拟机把class文件加载至内存之后,对字节码数据进行校验/解析/初始化等操作,最终形成可被VM直接使用的java类型,这就是虚拟机类加载机制.类的加载完全可以在运行时进行,这给VM提供了动态加载类提供了可行性.     类生命周期过程大概分为:加载-->校验-->解析-->初始化-->使用-->卸载;类在被"使用"之前必须进行前4个阶段,其中初始化工作可以被延迟进行,直到类需要创建实例/static方法或 ...
本文转载自http://shift-alt-ctrl.iteye.com/blog/1842631   一.运行时数据区:   程序计数器:它是一块较小的内存空间,主要作用是当前线程所执行的字节码的行号指示器.由于java虚拟机的多线程是通过轮流切换并分配处理器执行时间 ...

【转】JMS 概述

    博客分类:
  • MQ
本文转载自http://shift-alt-ctrl.iteye.com/blog/1902820   一.JMS使用场景:    JMS是为"消息"而生,从使用的角度来说,任何可以与业务解耦的数据均可以作为"消息"存储;任何结构化(格式严格,适合解析)但未索引化(不能被随意检索)的数据均可以交付给JMS存储,但尽管JMS不是为存储而生.     1) 异构系统(应用)中,如果数据的交互无法通过DB共享/调用接口等方式实现时,可以考虑使用JMS作为数据的中转中心,并使用JMS API来交付消息和消费消息.主要作用为"业务解耦" ...
本文转载自http://shift-alt-ctrl.iteye.com/blog/2156937   有时候一些小的细节,确实比较纠结,对于try-catch-finally代码块中代码依次执行,当try中有exception抛出时,将会有catch拦截并执行,如果没有catch区块,那么exception将被添加到“return栈顶”并执行finally。     1) 如果catch中,再次抛出exception,那么原try中的exception是否还能抛出呢?     2) 如果catch中,抛出异常,finally是否继续执行?     3) 如果finally抛出异常 ...

常用 maven 指令

本文转载自http://shift-alt-ctrl.iteye.com/blog/1939783   mvn package -Dmaven.test.skip=true  打包并且跳过测试 -DskipTests,不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下。 -Dmaven.test.skip=true,不执行测试用例,也不编译测试用例类。   一. 常用指令     1) 生成eclipse项目: mvn clean eclipse:clean eclipse:eclipse         如果构建项目时需要下载 ...
本文转载自http://shift-alt-ctrl.iteye.com/blog/2208786   折腾了好几天,终于吧Jenkins + Git + Maven + tomcat集成环境搭建起来了,最终主要实现“自动构建、部署”web应用。   1、安装环境     操作系统:Centos 6.5     JDK:1.7.x     Maven ...
本文转载自http://shift-alt-ctrl.iteye.com/blog/1840411   Selector本身为抽象类,AbstractSelector是Selector类的抽象实现类,具体的实现类更加底层(SelectorImpl,位于sun.nio.ch);Selector即为"选择器",支撑了NIO的多路复用.Selector不能直接创建,需要通过Selector.open()获得,该方法将使用系统默认的选择器提供者创建新的选择器(SelectorProvider),可以通过选择器的close方法关闭它. 通过SelectionKey对象来表示可 ...
本文转载自http://shift-alt-ctrl.iteye.com/blog/1841324   SelectableChannel("可被选择"通道):抽象类,此类实现了InterruptableChannel接口."可选择"通道,就是noblocking通道,它的实现需要Selector的支持.因此这些Channel取名为"SelectableChannel"是可以理解的. 为 了和Selector(选择器)一起使用,此类的实例必须首先通过register方法进行注册.此方法返回一个表示该通道已向选择器注册的新 Se ...
特别声明:本文转载自 QING_____   NIO-Socket通讯,为我们解决了server端多线程设计方面的性能/吞吐量等多方面的问题,它提供了以非阻塞模式 + 线程池的方式来解决Server端高并发问题..NIO并不能显著的提升Client-server的通讯性能(其中包括全局性耗时总和,Server物理机资源开销和实际计算量),但是它可以确保Server端在支撑相应的并发量情况下,对物理资源的使用处于可控状态.对于开发者而言,NIO合理的使用了平台(OS/VM/Http协议)的特性并提供了高效的便捷的编程级别的API.   为了展示,NIO交互的基本特性,我们模拟了一个简单 ...
题目链接:https://oj.leetcode.com/problems/lru-cache/ Design and implement a data structure for Least Recently Used (LRU) cache. It should support the following operations: get and set. get(key) - Get the value (will always be positive) of the key if the key exists in the cache, otherwise return ...
字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢?实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件,如图12-6所示。 <iframe id="iframe_0.4142593172691813" style="margin: 0px; padding: 0px; border-width: initial; border-style: none; width: 1022px;" src="https://www.cnblogs ...
$ sudo /usr/local/mysql/bin/mysqld_safe –user=root & //启动MySQL(也可以通过偏好设置面板来启动)$ sudo /usr/local/mysql/bin/mysqladmin -uroot password yourpassword //设置MySQL密码(注意,这是第一次MySQL密码为空的时候的设置命令,如果是修改密码,还需在-uroot 后面加上-pyourpassword 来进行权限确认.yourpassword是你的密码)

mongodb

mongodb启动      bin/mongod    -----    waiting for connections on port 27017  表示等待连接即可以通过客户端(Robomongo)或程序连接了 mongo shell      bin/mongo   localhost:~ javahongxi$ cd soft/mongodb-2.4.6/ localhost:mongodb-2.4.6 javahongxi$ bin/mongo MongoDB shell version: 2.4.6 connecting to: test Server has ...
学过C语言的朋友都知道C编译器在划分内存区域的时候经常将管理的区域划分为数据段和代码段,数据段包括堆、栈以及静态数据区。那么在Java语言当中,内存又是如何划分的呢?   由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分。在讨论JVM内存区域划分之前,先来看一下Java程序具体执行的过程:                                           如上图所示,首先Java源代码文件(.java后缀)会被Java编译器编译为字节码文件(.class后缀),然后由JVM中的类加载器加载各个类的字节码文件,加 ...
Global site tag (gtag.js) - Google Analytics