java静态资源
㈠ 高并发原理 用java怎么优化
面对高并发高请求的大型JAVA应用场景,需要考虑到以下几个方面并并进行优化:
1、代码方面
从最基础的做起,优化所写代码,减少不必要的资源浪费,比如:避免频繁的new对象,优先考虑使用单例模式、减繁去重,重用代码要归纳成公用方法,相关工具类使用静态方法访问、使用java中效率高的类等等;
2、数据库方面
当面对复杂的应用,用户大量访问的时候,一台数据很快无法满足需求,这时就需要使用数据库集群或者库表散列。
常用的优化措施是M-S(主-从)方式进行同步复制,将查询和操作和分别在不同的服务器上进行操作,这样会大大减少数据库操作耗时;
3、静态资源方面
我们可以把一些访问频次高但是变更不大的动态请求提前渲染生成html静态页面,然后每次用户再访问该请求时,就不要再调用服务器请求了,这样会大大减少高峰期时服务器的压力;
在静态资源例如图片、js、css等方面,我们可以将这些资源与核心应用和html资源分离开,建立合适的静态文件服务器,针对不同类型的静态资源对服务器进行优化配置,这样就不会再高并发时因为这些静态资源的问题而使整个页面崩溃了;
4、其他方面
缓存:尽量使用缓存,包括用户缓存,信息缓存等,多花点内存来做缓存,可以大量减少与数据库的交互,提高性能。
可以考虑memcached缓存集群和静态HTML、Redis缓存
负载均衡:nginx(异步)、squid(同步)、lighttpd(异步)
存储:分布式的,如hadop等
㈡ java静态资源(静态方法,静态属性)是程序一运行就加载到jvm中,还是当被调用的时候才进行加载呢
java静态资源(静态方法,静态属性)是程序一运行就加载到jvm中的。
1、类中的静态属性会被加入到类对象(也可以叫做类的模板,是类的描述) 的构造器中,静态方法也会被加入到类对象中。
2、当第一次使用类时,JVM会通过类加载器,加载类对象,从而初始化静态属性,并装入类的方法,包括静态方法和实例方法(方法不会被调用,只是加载,从这个意义上来说,静态方法和实例方法是类似的)。嫌乎歼
3、当顷孝创建类的实例对象时,JVM会调用类的构造器,从而初始化类的属性。
(2)java静态资源扩展阅读:
JVM 类加载机制
JVM类加载机制分为五个部分:加载,验证,准备,解析,初始化,下面我们就分别来看一下这五个过程。
1、加载
加载是类加载过程中的一个阶段,这个阶段会在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的入口。注意这里不一定非得要从一个Class文件获取,这里既可以从ZIP包中读取(比如从jar包和war包中读取),也可以在运行时计算生成(动态代理),也可以由其它文件生成(比如将JSP文件转换成对应的Class类)。
2、验证
这一阶段的主要目的是为了确保Class文件的字节流中包含的信息是否符合当前虚拟机的要求,并且不会危害虚拟机自身的安全。
3、准备
准备阶段是正式为类变量分配内存并设置类变量的初始值阶段,即在方法区中分配这些变量芹冲所使用的内存空间。
4、解析
解析阶段是指虚拟机将常量池中的符号引用替换为直接引用的过程。符号引用就是class文件中的:
CONSTANT_Class_info
CONSTANT_Field_info
CONSTANT_Method_info
等类型的常量。
5、初始化
初始化阶段是类加载最后一个阶段,前面的类加载阶段之后,除了在加载阶段可以自定义类加载器以外,其它操作都由JVM主导。到了初始阶段,才开始真正执行类中定义的Java程序代码。初始化阶段是执行类构造器<client>方法的过程。