
JAVA
Sharker_
这个作者很懒,什么都没留下…
展开
-
java 死锁产生原因及解锁
进程死锁及解决办法 一、要点提示 (1) 掌握死锁的概念和产生死锁的根本原因。 (2) 理解产生死锁的必要条件–以下四个条件同时具备:互斥条件、不可抢占条件、占有且申请条件、循环等待条件。 (3) 记住解决死锁的一般方法,掌握死锁的预防和死锁的避免二者的基本思想。 (4) 掌握死锁的预防策略中资源有序分配策略。 (5) 理解进程安全序列的概念,理解死锁与安全序列的关系。 (6) 了解转载 2017-09-11 15:06:43 · 662 阅读 · 0 评论 -
在Eclipse上手动设置jvm参数
典型设置: java -Xmx3550m -Xms3550m -Xmn2g -Xss128k -Xmx3550m:设置JVM最大可用内存为3550M。 -Xms3550m:设置JVM促使内存为3550m。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。 -Xmn2g:设置年轻代大小为2G。整个JVM内存大小=年轻代大小 + 年老代大小 + 持久代大小。持久代一般固定大原创 2015-12-15 10:00:44 · 8216 阅读 · 0 评论 -
WEB网站防御XSS攻击思路和XSS实践
本文将会着重介绍防御XSS攻击的一些原则,需要读者对于XSS有所了解,至少知道XSS漏洞的基本原理,如果您对此不是特别清楚,请参考这两篇文章:《Stored and Reflected XSS Attack》《DOM Based XSS》攻击者可以利用XSS漏洞向用户发送攻击脚本,而用户的浏览器因为没有办法知道这段脚本是不可信的,所以依然会执行它。对于浏览器而言,它认为这段脚本是来自可以信任的服务转载 2015-11-27 16:55:22 · 1509 阅读 · 0 评论 -
Java TheadLocal到底是什么
看了很多的blog对Java的TheadLocal对象说明都是很含糊,今天看到一篇大牛的blog 一句话就明白了 java中的ThreadLocal类可以让你创建的变量只被同一个线程进行读和写操作。因此,尽管有两个线程同时执行一段相同的代码,而且这段代码又有一个指向同一个ThreadLocal变量的引用,但是这两个线程依然不能看到彼此的ThreadLocal变量域。 1、创建一个Thr转载 2015-12-29 10:27:25 · 1111 阅读 · 0 评论 -
Java性能调优笔记
调优步骤:衡量系统现状、设定调优目标、寻找性能瓶颈、性能调优、衡量是否到达目标(如果未到达目标,需重新寻找性能瓶颈)、性能调优结束。寻找性能瓶颈性能瓶颈的表象:资源消耗过多、外部处理系统的性能不足、资源消耗不多但程序的响应速度却仍达不到要求。资源消耗:CPU、文件IO、网络IO、内存。外部处理系统的性能不足:所调用的其他系统提供的功能或数据库操作的响应速度不够。资源消耗不多但程序的响应速度却转载 2015-12-10 10:15:01 · 648 阅读 · 0 评论 -
HotSpot VM GC 的种类
collector种类 GC在 HotSpot VM 5.0里有四种: incremental (sometimes called train) low pause collector已被废弃,不在介绍. 类别 serial collector parallel collector( throughput collector ) concurrent collector(conc转载 2015-12-10 10:30:40 · 422 阅读 · 0 评论 -
JAVA计算文件(夹)File类型的大小(文件个数)
/** * * @author esle * */public class FileUtis { public static String FormetFileSize(long fileS) {// 转换文件大小 DecimalFormat df = new DecimalFormat("#.00"); String fileSizeString原创 2015-12-09 11:57:32 · 2542 阅读 · 0 评论 -
天猫浏览型应用的CDN静态化架构演变
在天猫双11活动中,商品详情、店铺等浏览型系统,通常会承受超出日常数倍甚至数十倍的流量冲击。随着历年来双11流量的大幅增加,每年这些浏览型系统都要面临容量评估、硬件扩容、性能优化等各类技术挑战。因此,架构方面的重点在于,如何能够利用合理成本应对瞬间飙高的峰值请求,并确保活动完整周期中系统容量的可伸缩性、用户响应时间的稳定性,以及外部依赖系统出现问题时的高可用性。此外,作为最主要的页面流量承载体系,架转载 2015-10-30 14:48:28 · 793 阅读 · 0 评论 -
网页静态化和网页伪静态化之间的区别与选择
网页静态化和网页伪静态化,如果我们是一个不懂网站的人估计听到这些词可能会比较头晕,王晟璟在刚开始接触并尝试建设自己的个人博客网站的时候也是如此,看了很多关于这方面的资料也还是云里雾里的,不过后面终于整明白了。记得有句话是这样说的:一个人快乐,不如与他人分享,一起快乐。那么既然我整明白了,如果我把他分享出来,就会有许多在网站建设过程中遇到类似问题的人给到他们一些帮助,所以自然而然就忍不住想要和大家一起转载 2015-10-30 14:38:40 · 5702 阅读 · 0 评论 -
Sitemesh 3 的使用及配置
Sitemesh 3 的使用及配置 1 . Sitemesh 3 简介Sitemesh 是一个网页布局和修饰的框架,基于 Servlet 中的 Filter,类似于 ASP.NET 中的‘母版页’技术。参考:百度百科,相关类似技术:Apache Tiles。官网:http://wiki.sitemesh.org/wik转载 2015-11-10 11:47:26 · 406 阅读 · 0 评论 -
Google Java编程风格规范
前言这份文档是Google Java编程风格规范的完整定义。当且仅当一个Java源文件符合此文档中的规则, 我们才认为它符合Google的Java编程风格。与其它的编程风格指南一样,这里所讨论的不仅仅是编码格式美不美观的问题, 同时也讨论一些约定及编码标准。然而,这份文档主要侧重于我们所普遍遵循的规则, 对于那些不是明确强制要求的,我们尽量避免提供意见。1.1 术语说明在本文档中,除非另有说明:术语转载 2015-09-22 13:28:05 · 592 阅读 · 0 评论 -
Google System File 详解
GFS这三个字母无需过多修饰,《Google File System》的论文也早有译版。但是这不妨碍我们加点批注、重温经典,并结合上篇Haystack的文章,将GFS、TFS、Haystack进行一次全方位的对比,一窥各巨头的架构师们是如何权衡利弊、各取所需。介绍我们设计和实现了GFS来满足Google与日俱增的数据处理需求。与传统的分布式文件系统一样,GFS着眼在几个重要的目标,比如性能、可伸转载 2015-10-09 14:39:13 · 694 阅读 · 0 评论 -
java实现阿拉伯数字转换为汉字数字源代码
package bin;/** * @author Elsa * @param args * @param 2013-1-21 */public class DoubleTest { static String[] units = { "", "十", "百", "千", "万", "十万", "百万", "千万", "亿", "十亿", "百亿", "千亿原创 2015-10-09 13:30:52 · 1054 阅读 · 0 评论 -
高性能Tomcat:漫谈行走在sendfile之上的Tomcat
Tomcat常用的三种IO模式提起高性能JAVA IO大家一定会想到NIO,AIO等等,然而我们的Tomcat是java写的一个优秀的开源的web服务,它与NIO有什么关系呢?我们的tomcat应用是不是早就跑在nio之上了呢?答案是Tomcat是支持NIO的,到Tomcat7为止,默认的Tomcat包里面的配置并没有开启NIO连接器。下面我先简单介绍一下Tomcat的三种IO策略:BIO,NIO,转载 2015-10-09 13:14:14 · 584 阅读 · 0 评论 -
Freemarker 内置函数 数字、字符串、日期格式化用法介绍
在用FreeMarker过程中,感觉FreeMarker的字符串,日期,集合等处理能力还是很强大的,上网搜了一些资料,整理如下,以便能帮助大家更熟练的应用Freemarker完成项目开发。一、Sequence的内置函数1. sequence?first 返回sequence的第一个值。2. sequence?last 返回sequence的最后一个值。3. sequ转载 2015-10-23 10:48:54 · 1675 阅读 · 0 评论 -
UrlRewriteFilter 4.0.3过滤器参数
UrlRewriteFilter4.0.3首页下载GitHub项目StackOverflow搜索UrlRewrite StackOverflow上 背景 许可证 更新日志 配置 安装 提示 滤波器参数 配置文件 Ant任务 mod_rewrite风格翻译 2015-10-21 13:15:26 · 1948 阅读 · 0 评论 -
Tomcat的JVM设置和连接数设置
Windows环境下修改“%TOMCAT_HOME%\bin\catalina.bat”文件,在文件开头增加如下设置:set JAVA_OPTS=-Xms256m -Xmx512m Linux环境下修改“%TOMCAT_HOME%\bin\catalina.sh”文件,在文件开头增加如下设置:JAVA_OPTS=’-Xms256m -Xmx512m’ 其中,-Xms设置初始化内存大小,-Xmx设转载 2015-12-15 10:09:18 · 462 阅读 · 0 评论 -
servlet输出流图片
package com.estone.servlet;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.OutputStream;import javax.servlet.ServletException;import javax.servlet.http.原创 2015-12-15 16:03:24 · 6270 阅读 · 1 评论 -
java操作office和pdf文件:读取word,excel和pdf文档内容
引用POI包读取word文档内容 poi.jar 下载地址 http://apache.freelamp.com/poi/release/bin/poi-bin-3.6-20091214.zip http://apache.etoak.com/poi/release/bin/poi-bin-3.6-20091214.zip http://labs.renren.com/apache-mi原创 2015-12-15 13:44:30 · 2208 阅读 · 0 评论 -
并发编程总结之volatile
摘要:本节主要介绍了 volatile关键字的作用是使变量在多个线程间可见,但是不具有原子性,以及volatile的运行内存介绍。在java中,每个线程都会有一块工作内存区,其中存放着所有线程共享的主内存中的变量值的拷贝。当线程执行时,它在自己的工作区内存中操作这些变量。为了存取一个共享的变量,一个线程通常会先获取锁定并清除它的内存工作区,把这些共享变量从所有线程的共享内存中正确的装入到它自己所在的原创 2017-09-19 11:07:41 · 637 阅读 · 0 评论 -
MySQL和PostgreSQL数据库安全配置
0x00 MySQL和PostgreSQL安全配置针对开源数据库MySQL和PostgreSQL的安全配置主要主要通过身份鉴别、访问控制、安全审计、入侵防范、资源控制五个方面来实现。0x01 身份鉴别MySQL和PostgreSQL均可以实现身份鉴别功能。通过设置数据库基本上能够实现能够满足《信息系统安全等级保护基本要求》第三级身份鉴别中大部分要求,但是对于“f 项应采用两种或两种以上组合的鉴别技术转载 2016-05-29 22:10:51 · 3860 阅读 · 0 评论 -
BurpLoader 初次体验
第一次使用这个神器,自己试试了 记下简单的过程 用的是Chrome 然后设置代理服务器为本地 下载BurpLoader.jar 是java写的 所以jdk环境是必须的 启动java -jar BurpLoader.jar 启动之后的界面 举个简单的例子啊 我们要抓个包试试 设置代理之后 随便点开一个页面就会抓包信息,开启代理模式 打开网页:http://blog.c原创 2016-04-09 10:50:01 · 12238 阅读 · 0 评论 -
秒杀系统架构分析与实战
原文地址: http://www.importnew.com/18920.html 原文出处: 陶邦仁1 秒杀业务分析正常电子商务流程(1)查询商品;(2)创建订单;(3)扣减库存;(4)更新订单;(5)付款;(6)卖家发货秒杀业务的特性(1)低廉价格;(2)大幅推广;(3)瞬时售空;(4)一般是定时上架;(5)时间短、瞬时并发量高;2 秒杀技术挑战假设某网站秒杀活动只推出转载 2016-04-05 08:50:42 · 1073 阅读 · 0 评论 -
数据库水平切分的实现原理解析——分库,分表,主从,集群,负载均衡器
数据库水平切分的实现原理解析——分库,分表,主从,集群,负载均衡器(转) 第1章 引言随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。通过数据切分来提高网站性能,横向扩展数据层已经成为架构研发人员首选的方式。水平切分数据库:可以降低单台机器的负载,同时转载 2016-03-22 16:01:15 · 865 阅读 · 0 评论 -
js快速求数组之和
js快速求数组之和 eval(arr.join(“+”));var arr=[12,312,3,67,3,423,878,21];alert( eval(arr.join("+")))原文地址:https://segmentfault.com/n/1330000004357065转载 2016-03-17 15:23:00 · 8293 阅读 · 1 评论 -
[转]Java中ArrayList和LinkedList区别
转自:http://pengcqu.iteye.com/blog/502676一般大家都知道ArrayList和LinkedList的大致区别: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 3转载 2016-01-15 11:14:53 · 757 阅读 · 0 评论 -
ECharts3.0 强大的统计图
简单一个案例 JSP:引入相应的js即可<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html原创 2016-01-12 17:39:52 · 3485 阅读 · 0 评论 -
Linux中如何开启8080端口供外界访问
装好Tomcat7后,发现除了本机能访问外界访问不了,岂有此理。于是请教百度大神,在费一番周折后,总结步骤如下:1.修改文件/etc/sysconfig/iptables[root@bogon ~]# cd /etc/sysconfig/ [root@bogon sysconfig]# vi iptables文件内容如下,注意8080端口是新加的,目的是对外界开放8080端口# Firewall转载 2015-12-25 17:33:41 · 13705 阅读 · 0 评论 -
XSS的常见变换
XSS不具有浏览器通用性。不同的浏览器对同一XSS的适用不一样。相比较而言,IE8和Firefox相对更安全,本身就对XSS攻击有更严格的过滤。而IE6的安全性一般,即使攻击者的代码有些“变形”,浏览器还是会“尽力而为”的解析。而其他的一些浏览器如opera,XSS安全处理可能做得更差。本文基本上是在IE6的基础上给大家分析XSS的变形和绕过。以便大家有针对性的防护。作者参阅了互联网上一些转载 2015-12-08 14:42:32 · 537 阅读 · 0 评论 -
ORCALE用sql语句更新字段到当前系统时间
下面的是找的如果时间字段是timestamp类型:UPDATE TABLE SET COLUMN_START_TIME = to_timestamp(to_CHAR(sysdate,'YYYY-MM-DD')||to_char(COLUMN_START_TIME,'hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss');如果时间字段是Date类型:UPDATE TABLE S原创 2015-12-24 13:59:18 · 11548 阅读 · 0 评论 -
防止表单重复提交的校验
思路是:在进入form表单前加上一组token(令牌机制)在页面的隐藏域,同时也想session域中存储一份(我们这同一名称为”token”),等到我们提交时,把页面的token值和session中的token值比对,一样则不是重复提交,同时移除session中的token,就OK了,上代码import java.security.MessageDigest;import java.securit原创 2015-12-02 09:06:09 · 868 阅读 · 0 评论 -
Nginx反向代理和负载均衡
3台Centos 192.168.137.128 (Nginx) 192.168.137.129(Tomcat 端口8080) 192.168.137.131(Tomcat 端口8080) (如果复制的VM的网卡不可用 可删除/etc/udev/rules.d/70-persistent-net.rules 文件 我的是70开头,有的不一样 可以执行 echo null >> 70-pe原创 2016-01-14 14:59:20 · 1172 阅读 · 0 评论 -
java的精髓----对象是怎么样创建的
看到这样的文字,让我不得不钦佩作者原创 2015-12-16 10:38:11 · 515 阅读 · 0 评论 -
Stackoverflow上人气最旺的10个Java问题
1、 为什么两个(1927年)时间相减得到一个奇怪的结果? (3623个赞) 如果执行下面的程序,程序解析两个间隔1秒的日期字符串并比较:public static void main(String[] args) throws ParseException { SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm转载 2015-11-04 13:26:36 · 385 阅读 · 0 评论 -
java源码分析之ArrayList
ArrayList就是传说中的动态数组,就是Array的复杂版本,它提供了如下一些好处:动态的增加和减少元素、灵活的设置数组的大小…… 认真阅读本文,我相信一定会对你有帮助。比如为什么ArrayList里面提供了一个受保护的removeRange方法?提供了其他没有被调用过的私有方法? 首先看到对ArrayList的定义: [java]publicclass ArrayList<E> e转载 2015-11-04 13:21:56 · 303 阅读 · 0 评论 -
HTTP STATUS CODE DETAIL
200 ok - 成功返回状态,对应,GET,PUT,PATCH,DELETE. 201 created - 成功创建。 304 not modified - HTTP缓存有效。 400 bad request - 请求格式错误。 401 unauthorized - 未授权。 403 forbidden - 鉴权成功,但是该用户没有权限。 404 not原创 2015-10-28 13:10:57 · 482 阅读 · 0 评论 -
Tomcat 自启动环境参数的设置及 Linux 脚本的启动顺序
原文链接:Tomcat 自启动环境参数的设置及 Linux 脚本的启动顺序 我的问题: 在把tomcat作为服务启动的时候,发现中文乱码,表现为(????),这说明linux不认识此字符集,在本地locale配置中文,行不通.但是手动启动tomcat服务确实正常,由此可以说明有启动脚本有关,也就是catalina.sh中.结果配置结束就可以了.参见下文,感谢! 问题描述: 最近 在原创 2015-10-09 15:30:21 · 1299 阅读 · 0 评论 -
海量数据处理:十道面试题与十个海量数据处理方法总结
1、海量日志数据,提取出某日访问百度次数最多的那个IP。 首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多有个2^32个IP。同样可以采用映射的方法,比如模1000,把整个大文件映射为1000个小文件,再找出每个小文中出现频率最大的IP(可以采用hash_map进行频率统计,然后再找出频率最大的几个)及相应的频率。然后再在这1000个最大的IP中转载 2015-10-09 15:44:30 · 372 阅读 · 0 评论 -
33款可用来抓数据的开源爬虫软件工具
33款可用来抓数据的开源爬虫软件工具2015-10-09 09:0236大数据专稿,本文由36大数据收集整理,转载必须标明来源36大数据且附上本文连接。原文链接要玩大数据,没有数据怎么玩?这里推荐一些33款开源爬虫软件给大家。爬虫,即网络爬虫,是一种自动获取网页内容的程序。是搜索引擎的重要组成部分,因此搜索引擎优化很大程度上就是针对爬虫而做出的优化。网络爬虫是一个自动提取网页的程序,它为搜索引擎从转载 2015-10-23 09:03:43 · 2034 阅读 · 0 评论 -
QQ于WEB网站接入流程详细
网站接入流程 网站通过以下几个步骤,即可接入互联开放平台: 开发者注册 > 网站申请 > 网站开发 > 调用OpenAPI目录 [隐藏]1. 开发者注册2. 网站接入申请2.1 添加网站2.2 网站信息完善3. 网站开发3.1 开发流程概述3.1.1 网站上设置QQ登录入口3.1.2 用户登录验证和授权3.1.3 登录和授权完成后,跳转回网站3.1.4 获取并存储acces原创 2015-10-19 17:39:19 · 2215 阅读 · 0 评论