java
技术从未如此性感
这个作者很懒,什么都没留下…
展开
-
网页 VSCode 在线浏览和编辑 github项目
在线vscode原创 2022-08-03 10:56:25 · 488 阅读 · 0 评论 -
Thread ThreadLocal ThreadLocalMap
ThreadLocal<String> local1 = new ThreadLocal<>(); ThreadLocal<String> local2 = new ThreadLocal<>(); new Thread(new Runnable() { @Override public void run() { local1.s...原创 2021-05-27 13:55:07 · 133 阅读 · 0 评论 -
class文件版本号
原创 2020-05-13 11:40:50 · 377 阅读 · 0 评论 -
kotlin
定义变量:var:可变变量val:只读变量var有setter和getter,val只有getterlateinit和 by lazy lateinit 只能用在var类型,lateinit不能用在可空的属性上和java的基本类型上 by lazy { } 只能用在val"?" 表示可为空"!!" 表示不能为空"?." 称为安全调用,比如a ?. b 当a不为空的...原创 2020-02-11 19:42:51 · 311 阅读 · 0 评论 -
JVM原理及底层探索
JVM是Java程序运行的环境,但是他同时也是一个操作系统的一个应用程序的一个进程,因此JVM也有他自己的运行生命周期,也有自己的代码和数据空间。JDKJDK在Java的整个体系中充当一个生产加工中心,产生所有的数据输出,是所有指令和战略的执行中心。本身还提供了Java的完整方案,可以开发目前Java能支持的所有应用和系统程序。而之所以现在还会分j2me,j2ee这些类,是把他们用转载 2016-04-29 16:21:27 · 388 阅读 · 0 评论 -
Java内部类的全限定名规律
Java内部类的全限定名规律成员内部类 测试结果表明,无论成员内部类是否为静态,其全限定名都使用如下命名方法: 包名.外部类名$内部类名 测试代码:[java] view plain copy print?package com.test; public class In转载 2016-04-29 16:41:50 · 1114 阅读 · 0 评论 -
Java字节码操作开源框架
avassist Javassist是一个开源的分析、编辑和创建Java字节码的类库。是由东京技术学院的数学和计算机科学系的 Shigeru Chiba 所创建的。它已加入了开放源代码JBoss 应用服务器项目,通过使用Javassist对字节码操作为JBoss实现动态AOP框架。BCEL Byte Code Engineering Library (BCEL),这原创 2016-05-25 10:05:42 · 937 阅读 · 0 评论 -
ClassLoader,ASM,Cglib,Bytecode
一、Java ClassLoader1,什么是ClassLoader 与 C 或 C++ 编写的程序不同,Java 程序并不是一个可执行文件,而是由许多独立的类文件组成,每一个文件对应于一个 Java 类。 此外,这些类文件并非立即全部都装入内存,而是根据程序需要装入内存。ClassLoader 是 JVM 中将类装入内存的那部分。 而且,Java ClassLoader 就是原创 2016-05-25 10:08:30 · 1155 阅读 · 0 评论 -
JAVA框架
Spring Framework 【Java开源JEE框架】Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。 Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构基础是基于使用JavaBean属性的Inversion of Control容器。然而,这仅仅是完整图景中的一部分:Spring在使用IoC容器原创 2016-05-25 10:09:56 · 462 阅读 · 0 评论 -
内部类
内部类是指在一个外部类的内部再定义一个类。内部类作为外部类的一个成员,并且依附于外部类而存在的。内部类可为静态,可用protected和private修饰(而外部类只能使用public和缺省的包访问权限)。内部类主要有以下几类:成员内部类、局部内部类、静态内部类、匿名内部类 为什么需要内部类? 典型的情况是,内部类继承自某个类或实现某个接口,内部类的代码操作创建原创 2016-05-25 10:11:14 · 239 阅读 · 0 评论 -
sleep与wait的区别
sleep()方法是属于Thread类中的。wait()方法是属于Object类中的。sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监控状态依然保持者,当指定的时间到了又会自动恢复运行状态。在调用sleep()方法的过程中,线程不会释放对象锁。当调用wait()方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用not原创 2016-04-20 18:37:58 · 329 阅读 · 0 评论 -
JavaEE的13种核心技术
JAVAEE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,它对开发基于Web的多层应用提供了功能支持,下面对JAVAEE中的13种技术规范进行简单的描述(限于篇幅,这里只进行简单的描述): 1、JDBC(Java Database Connectivity) JDBC API为访问不同的数据库提供了一种统一的途径,象ODBC一样,JDBC对开发者屏蔽了一些原创 2016-05-29 16:01:14 · 391 阅读 · 0 评论 -
xpath和dom4j解析xml
1 XML文件解析的4种方法通常解析XML文件有四种经典的方法。基本的解析方式有两种,一种叫SAX,另一种叫DOM。SAX是基于事件流的解析,DOM是基于XML文档树结构的解析。在此基础上,为了减少DOM、SAX的编码量,出现了JDOM,其优点是,20-80原则(帕累托法则),极大减少了代码量。通常情况下JDOM使用时满足要实现的功能简单,如解析、创建等要求。但在底层,JDOM还是使用SA原创 2016-05-18 16:51:35 · 501 阅读 · 0 评论 -
DOM、JDOM、DOM4J
dom是解析xml的底层接口之一(另一种是sax) 而jdom和dom4j则是基于底层api的更高级封装 dom是通用的,而jdom和dom4j则是面向java语言的 DOM 是用与平台和语言无关的方式表示 XML 文档的官方 W3C 标准。DOM 是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和原创 2016-05-18 17:54:22 · 349 阅读 · 0 评论 -
git
1.什么是git 这个去google一下可以搜出一大堆,git就是一个软件管理器,不同一般的是它是分布式的,不仅有一个中心的服务器控制最新版本代码,而且每个开发者自己还有个本地仓库,所以在开发过程中都是先将代码提交到本地仓库再推送到中心服务器上的,这样的好处就是每个人都依赖于中心服务器来实现交互,但又不会被中心服务器限制,就算中心服务器挂了,也能很容易的找到最新版本的代码,而原创 2016-06-01 10:06:36 · 356 阅读 · 0 评论 -
BASE64加解密
BASE64加解密原创 2016-06-01 16:01:24 · 934 阅读 · 0 评论 -
MD5加解密
MD5,全称为“Message Digest Algorithm 5”,中文名“消息摘要算法第五版”,它是计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。严格来说,它是一种摘要算法,是确保信息完整性的。不过,在某种意义上来说,也可以算作一种加密算法。MD5 算法具有很多特点:压缩性:任意长度的数据,算出的MD5值长度都是固定的。容易计算:从原数据计算出MD5原创 2016-06-01 16:04:03 · 567 阅读 · 0 评论 -
保持顺序的 Java Properties 类
Java 的 Properties 加载属性文件后是无法保证输出的顺序与文件中一致的,因为 Properties 是继承自 Hashtable 的, key/value 都是直接存在 Hashtable 中的,而 Hashtable 是不保证进出顺序的。文章中已经给提供了代码,思路是继承自 Properties,覆盖原来的 put/keys,keySet,stringPrope原创 2016-06-01 16:09:01 · 548 阅读 · 0 评论 -
linux 下 eclipse 开发环境的搭建
在windows平台下开发习惯了各种ide,不得不承认ide给我们开发带来的便捷。于是希望在linux平台下也希望找到一个合适的ide。这就想起来了eclipse具有跨平台性。那么就开始搭建环境吧。1.首先需要去下载程序包,由于eclipse的运行需要java环境,需要去oracle网站下载jdk http://www.oracle.com/technetwork/jav原创 2016-06-24 09:13:06 · 415 阅读 · 0 评论 -
使用 CXF 做 webservice 简单例子
Apache CXF 是一个开放源代码框架,提供了用于方便地构建和开发 Web 服务的可靠基础架构。它允许创建高性能和可扩展的服务,您可以将这样的服务部署在 Tomcat 和基于 Spring 的轻量级容器中,以及部署在更高级的服务器上,例如 Jboss、IBM® WebSphere® 或 BEA WebLogic。 该框架提供了以下功能:Web 服务标准支持转载 2016-05-21 09:03:32 · 495 阅读 · 0 评论 -
MySQL引擎
MySQL数 据库引擎取决于MySQL在安装的时候是如何被编译的。要添加一个新的引擎,就必须重新编译MYSQL。在缺省情况下,MYSQL支持三个引擎:ISAM、MYISAM和HEAP。另外两种类型INNODB和BERKLEY(BDB),也常常可以使用。如果技术高超,还可以使用MySQL++ API自己做一个引擎。下面介绍几种数据库引擎: ISAM:ISAM是一个定义明确且历经时间考验原创 2016-05-21 10:01:36 · 237 阅读 · 0 评论 -
MySQL(一)
mysql原创 2016-05-21 10:24:28 · 352 阅读 · 0 评论 -
MYSQL(二)
1. 视图 视图是虚拟的表。与包含数据的表不一样,视图只包含使用时动态检索数据的查询(即:包含一个SQL查询),仅仅是用来查看存储在别处的数据的一种设施。 视图基本操作:(1)创建:CREATE VIEW;(2)查看:SHOW CREATE VIEW viewname;(3)删除:DROP VIEW viewname;(4)更新:CREATE OR REPLACE原创 2016-05-21 10:25:53 · 265 阅读 · 0 评论 -
字符集编码详解
ASCII 、GB2312、GBK、GB18030、unicode、UTF-8ASCII字符集编码 ASCII码是7位编码,编码范围是0x00-0x7F。ASCII字符集包括英文字母、阿拉伯数字和标点符号等字符。其中0x00-0x20和0x7F共33个控制字符。 只支持ASCII码的系统会忽略每个字节的最高位,只认为低7位是有效位。HZ字符编码就是早期为了在原创 2016-05-21 10:32:29 · 326 阅读 · 0 评论 -
URLEncoder和URLDecoder类
/* 网页中的表单使用POST方法提交时,数据内容的类型是 application/x-www-form-urlencoded,这种类型会:1.字符"a"-"z","A"-"Z","0"-"9",".","-","*",和"_" 都不会被编码;2.将空格转换为加号 (+) ;3.将非文本内容转换成"%xy"的形式,xy是两位16进制的数值;4.在每个 name=v原创 2016-05-21 10:34:15 · 5382 阅读 · 0 评论 -
Quartz使用-入门使用
注:这里使用的是Quartz1.6.5版本(包:quartz-1.6.5.jar)[java] view plain copy//测试main函数 //QuartzTest.java package quartzPackage; import java.text.SimpleDateFormat; import原创 2016-05-21 15:03:02 · 445 阅读 · 0 评论 -
Quartz笔记(一)
什么是QuartzQuartz是一个完全由Java编写的开源作业调度框架,为在Java应用程序中进行作业调度提供了简单却强大的机制。Quartz允许开发人员根据时间间隔来调度作业。它实现了作业和触发器的多对多的关系,还能把多个作业与不同的触发器关联。简单地创建一个org.quarz.Job接口的Java类,Job接口包含唯一的方法: public void原创 2016-05-21 15:05:44 · 3875 阅读 · 0 评论 -
Quartz笔记(二) cron表达式格式
CronTriggerCronTriggers往往比SimpleTrigger更有用,如果您需要基于日历的概念,而非SimpleTrigger完全指定的时间间隔,复发的发射工作的时间表。CronTrigger,你可以指定触发的时间表如“每星期五中午”,或“每个工作日9:30时”,甚至“每5分钟一班9:00和10:00逢星期一上午,星期三星期五“。即便如此,SimpleTrigger原创 2016-05-21 15:06:59 · 348 阅读 · 0 评论 -
Java1.5多线程框架
内容主要包括之Executors,Executor,ExecutorService,CompletionService,Future,CountDownLauch,Callable,Runnable在讲1.5之后的多线程模式之前,先简单的说一下1.5之前的线程模式,简单的说就是Thread+Runnable模式。Thread是线程,Runnable可以看做是线程要执行的任务。1.5之前的线原创 2016-05-21 18:08:41 · 419 阅读 · 0 评论 -
Eclipse启动时报错:No java virtual machine
:A java Runtime Environment (JRE) or Java Development Kit (JDK) must be available in order to run Eclipse. No Java virtual machine was found after searching the following locations……原创 2016-06-26 11:21:58 · 531 阅读 · 0 评论 -
json解析出错
解析服务器返回的Json串时,JSONObject对象抛出了这个异常。在json串头部发现字符:"\ufeff" 。客户端解决方案:public static final String removeBOM(String data) {if (TextUtils.isEmpty(data)) {return data;}if (data.startsWith(原创 2016-06-27 09:13:58 · 692 阅读 · 0 评论 -
JAVAEE中的Nginx+Tomcat+Memcached集群Session共享
cookie是怎样工作的? 例如,我们创建了一个名字为login的Cookie来包含访问者的信息,创建Cookie时,服务器端的Header如下面所示,这里假设访问者的注册名是“Michael Jordan”,同时还对所创建的Cookie的属性如path、domain、expires等进行了指定。 Set-Cookie:login=Michael Jordan;path=/;domai原创 2016-06-06 08:57:30 · 503 阅读 · 0 评论 -
集群中几种session同步解决方案的比较
在集群中session安全和同步是个最大的问题,下面是收集到的几种session同步的方案,希望能通过分析其各自的优劣找出其适应的场景。1. 客户端cookie加密简单,高效。比较好的方法是自己采用cookie机制来实现一个session,在应用中使用此session实现。问题:session中数据不能太多,最好只有个用户id。参考实现:http://rollerweb转载 2016-06-06 09:00:20 · 261 阅读 · 0 评论 -
堆和栈的区别(转过无数次的文章)
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两转载 2016-06-06 09:04:48 · 238 阅读 · 0 评论 -
关于HttpClient的总结
关于Httpclient的使用总结如下:(1)当HttpClient的实例不再需要时,可以使用连接管理器关闭 httpclient.getConnectionManager().shutdown(); [java] view plain copy(1)当HttpClient的实例不再需要时,可以使用连接管理器关闭转载 2016-06-06 09:22:49 · 290 阅读 · 0 评论 -
导出数据为Excel的几种方式
方法一: 最简单的方式就是在JSP页面的开始部分使用如下的头部信息 response.setHeader("Content-disposition","attachment; filename=excelname.xls");%> xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.原创 2016-06-06 09:25:47 · 2095 阅读 · 0 评论 -
Apache2.2.11+Tomcat6.0.20集群配置
Apache2.x和Tomcat配置可以采用反向代理的方式(mod proxy),也可以采用JK模块,最终采用了JK模块,JK模块的效率要比反向代理高,这是Apache官方网站上说的,我没有测试过。JK配置虽然复杂,但更加灵活。首先,下载Apache2.2.11,Tomcat6.0.20解压版,以及mod_jk-1.2.28-httpd-2.2.3.so安装Apache服务器,将mod_j转载 2016-06-06 09:33:37 · 290 阅读 · 0 评论 -
spring使用模板发送邮件
需要引用的jar包:mail-1.4.1.jaractivation-1.1.jarspring-context-support-2.5.jarspring-webmvc.jar前台页面forgetPassword.jsp:[html] %@ page language="java" import="java.util.*"原创 2016-06-30 10:42:58 · 1313 阅读 · 0 评论 -
ASCII字符表
ASCII是英文American Standard Code for Information Interchange的缩写。ASCII码是目前计算机最通用的编码标准。因为信息在计算机上是用二进制表示的,这种表示法让人理解就很困难。因此计算机上都配有输入和输出设备,这些设备的主要目的就是,以一种人类可阅读的形式将信息在这些设备上显示出来供人阅读理解。为保证人类和设备,设备和计算机之间能进行正原创 2016-07-17 16:32:58 · 5531 阅读 · 0 评论 -
java原码、反码、补码 那点事
int占4个字节,32位byte占1个字节,8位所以强转时会截断。前24位---------------------------------------------------------------------------在内存中表示形式( 注意java中是以补码表示一个数,所以表示形式是补码,不是原码! ):int a = 3 00000000 00000原创 2016-07-27 18:41:20 · 678 阅读 · 0 评论