
Java
文章平均质量分 53
Lnho
发表是最好的记忆
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Tomcat设置网站别名
打开Tomcat目录下的 conf/server.xml 文件,新增一行 <Alias>你的域名</Alias> :<Host name="lnho.github.io" appBase="webapp" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Alias>原创 2015-04-09 11:15:27 · 5252 阅读 · 0 评论 -
Java解析HttpClient获取的Json字符串报错Expected BEGIN_OBJECT but was STRING
当前程序通过HttpClient调用一个php接口,对方返回了一个Json格式的字符串。 但是获取后用Gson解析报如下错误:Exception in thread "main" com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at原创 2016-04-22 09:34:07 · 11317 阅读 · 0 评论 -
Java知识整理——反射
Java的反射机制是做什么的? 主要功能就是可以根据一个类的名称来创建一个类的实例,并调用实例的方法。 我们通常情况下创建一个类实例的方法,就是new ABC()这样的方式来创建,那为什么还要用反射绕一大圈呢?因为反射可以让ABC这个具体的类,在运行的时候指定,例如可以通过传参的方式指定进来,比如我们传一个参数ABC就可以创建ABC这个类,也可以传递其他参数来创建DEF这个类。怎么做? 直接原创 2015-05-10 23:16:26 · 1626 阅读 · 2 评论 -
Java正则表达式简单用法
1.简单查找String target="var tips=\"认证成功<br>用户名:XXXX<br>IP地址:1.1.1.1\"";Pattern pattern = Pattern.compile("IP地址:[\\w\\.]+\"");Matcher matcher = pattern.matcher(target);String result;if (matcher.find())原创 2016-02-15 15:29:43 · 877 阅读 · 0 评论 -
Java中弹出对话框的方法
1.显示一个错误对话框,该对话框显示的 message 为 ‘alert’:JOptionPane.showMessageDialog(null, "alert", "alert", JOptionPane.ERROR_MESSAGE); 2.显示一个内部信息对话框,其 message 为 ‘information’: JOptionPane.showInternalMessageDialog(fr转载 2016-02-15 15:45:27 · 3288 阅读 · 0 评论 -
Java虚拟机内存分配策略
1.JVM内存分配分区Java的内存简单分为堆内存和非对内存 其中堆内存又可以分为新生代和老年代 新生代分为1个Eden区和2个Survivor区,如下图: 2.JVM垃圾回收种类分为2种,MinorGC和FullGC. MinorGC针对新生代的内存回收,时间较短,经常发生。 FullGC针对老年代的回收,通常伴随MinorGC,耗费时间较久,较少发生。2.JVM内存分配策略(1)先在E原创 2015-08-22 14:14:29 · 1860 阅读 · 0 评论 -
Java对象克隆方法(浅克隆、深克隆)
要让一个对象进行克隆,其实就是两个步骤: 1. 让该类实现java.lang.Cloneable接口; 2. 重写(override)Object类的clone()方法。上面的克隆方法其实是浅克隆,顾名思义就是很表面的很表层的克隆,如果我们要克隆User对象,只克隆他自身以及他包含的所有对象的引用地址。 而深克隆,就是非浅克隆。克隆除自身以外所有的对象,包括自身所包含的所有对象实例。至于深克隆转载 2015-05-09 15:51:04 · 1971 阅读 · 0 评论 -
Java知识整理——Servlet&JSP
Servlet什么是Servlet? servlet是用来处理客户端请求并生成动态web内容的Java程序语言类。Servlets大多是用来处理或者存储HTML表单提交的数据,提供动态内容和管理那些不在HTTP无状态协议中的状态信息。解释一个Servlet的架构. 核心抽象概念肯定是所有servlet必须实现 javax.servlet.Servlet 接口。 每个 servlet 必须直接原创 2015-05-09 15:32:20 · 990 阅读 · 0 评论 -
Java知识整理——异常处理
Java中的两种异常是什么?它们之间的区别? Java有两种类型的异常:checked与unchecked(检查与未检查) 异常. 如果unchecked异常可能会在方法或构造函数的执行时被抛出从而蔓延到方法或构造函数的外部, 它们也不需要要在方法或构造函数中声明throws子句. 然而, checked异常必须通过方法或构造函数的throws子句声明. 关于java异常处理的建议请参考这里Jav原创 2015-05-09 15:36:02 · 833 阅读 · 0 评论 -
Java知识整理——容器
Java Collections框架的基本接口 ? Java Collections 框架 提供了一系列支持对象集合操作的设计良好的接口和类. Java Collections框架中最基础的接口是: Collection, 表示一组对象(元素). Set, 包含非重复元素的集合. List, 包含非重复元素的有序集合. Map, 包含非重复键的键值对的对象.为什么Collection没有原创 2015-05-09 15:25:35 · 810 阅读 · 0 评论 -
Java知识整理——基础知识
什么是JVM? 为什么称Java为跨平台的编程语言? Java虚拟机(Java Virtual Machine)是可以执行Java字节码的虚拟机,每个Java源文件将被编译成字节码文件,然后在JVM中执行。Java之所以被设计成可以在任意的平台运行,而不需要重写或者在不同的平台下重新编译,这些都要归功于Java虚拟机(JVM),因为JVM非常了解特定的指令的长度以及底层硬件平台的特殊性。JDK和原创 2015-05-09 15:12:15 · 857 阅读 · 0 评论 -
Java知识整理——JDBC
什么是 JDBC ? JDBC是一个抽象层,允许用户在不同数据库间进行选择。JDBC使开发人员能够在Java中编写数据库应用程序,而不必让自己关心一个特定的数据库的底层细节。 解释JDBC中驱动的作用。 JDBC驱动提供了 对 JDBC API 所提供的抽象类 的 数据库供应商的特定实现。每个驱动必须提供java.sql包的以下的类实现:Connection,Statement,Prepare原创 2015-05-09 15:39:50 · 876 阅读 · 0 评论 -
Java知识整理——垃圾回收
Java中垃圾回收的目的是什么, 它什么时候被使用 ? 垃圾回收用于识别和丢弃程序不再需要的对象, 以便回收和复用资源.System.gc() 和Runtime.gc()方法用途? 这些方法用于提醒JVM开始垃圾回收. 然而开始垃圾回收的时机是由JVM决定的.finalize()什么时候被调用 ? 它的目的是什么 ? finallize方法是在释放该对象内存前由gc(垃圾回收器)调用原创 2015-05-09 15:30:35 · 813 阅读 · 0 评论 -
UNICODE,GBK,UTF-8区别
简单来说,unicode,gbk和大五码就是编码的值,而utf-8,uft-16之类就是这个值的表现形式.而前面那三种编码是一兼容的,同一个汉字,那三个码值是完全不一样的.如"汉"的uncode值与gbk就是不一样的,假设uncode为a040,gbk为b030,而uft-8码,就是把那个值表现的形式.utf-8码完全只针对uncode来组织的,如果GBK要转UTF-8必须先转uncode码,再转u转载 2015-05-09 16:09:38 · 2515 阅读 · 0 评论 -
Java知识整理——远程方法调用
什么是RMI ? Java远程方法调用(RMI)是一个Java API,它执行的面向对象的等价远程过程调用(RPC)的方法,包括了直接传输序列化的Java类和分布式垃圾收集的支持。 远程方法调用(RMI),也可以看作是一个远程运行的对象上激活的方法的过程。RMI提供位置透明性,因为用户认为一个方法是在本地运行的对象上执行。 RMI Tips here.什么是RMI的体系结构的基本原理? RMI原创 2015-05-09 15:43:47 · 1150 阅读 · 0 评论 -
Java知识整理——线程
进程与线程的区别 ? 进程是一个程序的执行(即正在运行的程序), 然而线程是在进程中独立的执行序列. 一个进程可以包含很多线程. 线程有时被称为轻量级的进程. 说下创建线程的不同方式. 你倾向于哪种方式并说明原因 ? 有三种创建线程的方式: 继承Thread类. 实现Runnable接口. 通过Executor框架创建线程池. 首选方式是实现Runnable接口, 因为它不需要原创 2015-05-09 15:14:07 · 870 阅读 · 0 评论 -
JavaWeb常用的操作
常用操作获取class路径: URL path=Thread.currentThread().getContextClassLoader().getResource("server.xml");读取properties文件: InputStream in = lnew BufferedInputStream(new FileInputStream(name)); Properties原创 2015-04-08 18:14:53 · 887 阅读 · 0 评论 -
JDK的快速排序算法实现DualPivotQuicksort
从JDK7开始采用这种双Pivot的快速排序算法,这种算法通常会比传统单Pivot的快排算法效率更高。 具体流程如下: 1.需要排序的数组为a,判断数组的长度是否大于286,大于使用归并排序(merge sort),否则执行2。 2.判断数组长度是否小于47,小于则采用插入排序,否则执行3。 3.采用近似算法计算数组长度的1/7int seventh = (length >> 3) + (原创 2016-02-15 18:26:23 · 3414 阅读 · 0 评论