安静的傍晚

每一件事都要用多方面的角度来看它。

JVM调优

    JVM调优的重点是垃圾回收(gc,garbage collection)和内存管理。    垃圾回收的时候会导致整个虚拟机暂停服务。    因此,应该尽可能地缩短垃圾回收的处理时间。设置堆大小 提高最大可用内存。更具服务器的内存控制基本上没存总量的二分之一多。设置 年老代年轻代大小 sun...

2018-02-27 14:34:33

阅读数 94

评论数 0

Tomcat优化教程

Tomcat内存优化,启动时告诉JVM我要一块大内存(调优内存是最直接的方式)Windows 下的catalina.bat;Linux 下的catalina.sh 如下:JAVA_OPTS='-Xms256m -Xmx512m' -Xms<size> J...

2018-02-27 14:30:57

阅读数 133

评论数 0

StringBuffer StringBuilder String 区别

        String 字符串常量,值不能改变        StringBuffer与Stringbuilder是字符串变量,值可以改变,他们都采用append()追加字符串,所以效率高于String         StringBuilder执行效率高于StringBuffer高于Str...

2018-02-27 11:45:00

阅读数 66

评论数 0

Java垃圾回收机制、GC

        说到垃圾回收(Garbage Collection,GC),很多人就会自然而然地把它和Java联系起来。在Java中,程序员不需要去关心内存动态分配和垃圾回收的问题,这一切都交给了JVM来处理。顾名思义,垃圾回收就是释放垃圾占用的空间一、如何确定某个对象是“垃圾”?        ...

2018-02-27 11:35:35

阅读数 73

评论数 0

年轻代、年老代和持久代

        年轻代(Young Generation)、年老代(Old Generation)和持久代(Permanent Generation)。其中持久代主要存放的是Java类的类信息,与垃圾收集要收集的Java对象关系不大。年轻代和年老代的划分是对垃 圾收集影响比较大的。年轻代     ...

2018-02-27 11:27:11

阅读数 146

评论数 0

数据库优化

1、索引的优化(索引的创建:oracle中为create index 索引名 on 表名(列名); )        当我们数据库的数据过多,查询速度跟不上时,我们可以通过创建索引的方式,加快速度,我自己进行过一个测试,我当时用了300万条数据,字段大概8个 ,不加索引时查询一条数据用了8.626...

2018-02-27 11:21:07

阅读数 56

评论数 0

Java精确计时

一般的java运输计时代码long starTime=System.currentTimeMillis(); //运算代码 long endTime=System.currentTimeMillis(); long Time=endTime-starTime; System.out.prin...

2018-02-26 22:30:42

阅读数 1221

评论数 0

Struts2是怎样通过struts.xml进行前后台交互呢?

     首先在项目启动的时候,项目下的Struts.xml文件会被dom4j工具解析;而当我们发送一个请求时,这个请求被StrutsPrepareAndExecuteFilter 拦截,而我们配置了struts处理url的拦截表达式,比如在<filter- maping&a...

2018-02-26 10:06:20

阅读数 258

评论数 0

如何实现字符串的反转及替换?

        可用字符串构造一StringBuffer 对象,然后调用StringBuffer 中的reverse方法即可实现字符串的反转,调用replace 方法即可实现字符串的替换。

2018-02-26 09:57:33

阅读数 200

评论数 0

多线程中的忙循环是什么?

        忙循环就是程序员用循环让一个线程等待,不像传统方法wait(), sleep() 或 yield() 它们都放弃了CPU控制,而忙循环不会放弃CPU,它就是在运行一个空循环。这么做的目的是为了保留CPU缓存,在多核系统中,一个等待线程醒来的时候可能会在另一个内核运行,这样会重建缓存...

2018-02-26 09:56:02

阅读数 1463

评论数 0

Java中的ReadWriteLock是什么?

        一般而言,读写锁是用来提升并发程序性能的锁分离技术的成果。Java中的ReadWriteLock是Java 5 中新增的一个接口,一个ReadWriteLock维护一对关联的锁,一个用于只读操作一个用于写。在没有写线程的情况下一个读锁可能会同时被多个读线程持有。写锁是独占的,你可以...

2018-02-26 09:55:22

阅读数 73

评论数 0

Java中synchronized 和 ReentrantLock 有什么不同?

        Java在过去很长一段时间只能通过synchronized关键字来实现互斥,它有一些缺点。比如你不能扩展锁之外的方法或者块边界,尝试获取锁时不能中途取消等。Java 5 通过Lock接口提供了更复杂的控制来解决这些问题。 ReentrantLock 类实现了 Lock,它拥有与 s...

2018-02-26 09:53:45

阅读数 123

评论数 0

怎么检测一个线程是否拥有锁?

在java.lang.Thread中有一个方法叫holdsLock(),它返回true如果当且仅当当前线程拥有某个具体对象的锁。

2018-02-26 09:53:17

阅读数 1219

评论数 0

Java中活锁和死锁有什么区别?

        活锁和死锁类似,不同之处在于处于活锁的线程或进程的状态是不断改变的,活锁可以认为是一种特殊的饥饿。一个现实的活锁例子是两个人在狭小的走廊碰到,两个人都试着避让对方好让彼此通过,但是因为避让的方向都一样导致最后谁都不能通过走廊。简单的说就是,活锁和死锁的主要区别是前者进程的状态可以改...

2018-02-26 09:52:32

阅读数 1064

评论数 0

Java如何避免死锁?

Java多线程中的死锁        死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。这是一个严重的问题,因为死锁会让你的程序挂起无法完成任务,死锁的发生必须满足以下四个条件:互斥条件:一个资源每次只能被一个进程使用。请求与保持条...

2018-02-26 09:51:56

阅读数 161

评论数 0

Java内存模型是什么?

Java内存模型规定和指引Java程序在不同的内存架构、CPU和操作系统间有确定性地行为。它在多线程的情况下尤其重要。Java内存模型对一个线程所做的变动能被其它线程可见提供了保证,它们之间是先行发生关系。这个关系定义了一些规则让程序员在并发编程时思路更清晰。比如,先行发生关系确保了:线程内的代码...

2018-02-26 09:50:55

阅读数 424

评论数 0

SpringMVC与Struts2的主要区别?

SpringMVC的入口是一个servlet即前端控制器,而struts2入口是一个filter过虑器。SpringMVC是基于方法开发,传递参数是通过方法形参,可以设计为单例或多例(建议单例),Struts2是基于类开发,传递参数是通过类的属性,只能设计为多例。 Struts采用值栈存储请求和响...

2018-02-26 09:46:55

阅读数 213

评论数 0

如何解决POST请求中文乱码问题,GET的又如何处理呢?

在web.xml中加入:<filter> <filter-name>CharacterEncodingFilter</filter-name> &am...

2018-02-26 09:45:42

阅读数 88

评论数 0

SpringMVC的工作流程?

流程 :用户发送请求至前端控制器DispatcherServlet DispatcherServlet收到请求调用HandlerMapping处理器映射器。 处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。 Dispatche...

2018-02-26 09:42:32

阅读数 115

评论数 0

高并发的核心技术 - 消息中间件(MQ)

什么是MQ        跨进程的消息队列,主要角色包括生产者与消费者。        生产者只负责生产信息,无法感知消费者是谁,消息怎么处理,处理结果是什么。        消费者负责接收及处理消息,无法感知生产者是谁,怎么产生的。MQ能做什么?        MQ 特性一般有异步,吞吐量大 ,...

2018-02-25 21:29:26

阅读数 531

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭