java
文章平均质量分 71
weixin_38437243
这个作者很懒,什么都没留下…
展开
-
jdk动态代理实现原理
JDK动态代理JDK动态代理是代理模式的一种实现方式,其只能代理接口。 使用步骤1、 新建一个接口2、 为接口创建一个实现类3、 创建代理类实现java.lang.reflect.InvocationHandler接口4、 测试 简单案例根据使用步骤:首先新建一个接口Subjectpackage com.lnjecit.proxy;/** * Subject * 抽象主题接口 * @a...转载 2018-06-13 17:22:30 · 183 阅读 · 0 评论 -
java 浅拷贝和深拷贝
Java中对象的创建clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象。所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象。那么在java语言中,有几种方式可以创建对象呢?1 使用new操作符创建一个对象2 使用clone方法复制一个对象那么这两种方式有什么相同和不同呢? new操作符的转载 2017-10-31 20:03:10 · 157 阅读 · 0 评论 -
java 中List包含List,如何添加多个list,Map中包含多个list,如何添加?
public class TestList { public static void main(String[] args) { List> vecvecRes = new ArrayList>(); for (int i = 0; i < 10; i++) { List list = new ArrayList(); for (int j = 0; j <= 5; j++)原创 2017-11-08 10:10:51 · 20265 阅读 · 0 评论 -
java 实现单链表节点的复制
题目要求:复制一个单链表,返回复制之后链表的头结点;注(不能返回复制之前的头结点)/** * 思想:先让指针p指向原始链表的头结点,声明一个复制链表的头结点为空,同时声明另外一个指针指向该复制链表的头结点; * 若是首次复制节点,则复制链表的头结点的next为空,并让指针q指向该头结点; * 否则,再次new一个节点原创 2017-10-10 23:18:48 · 2847 阅读 · 0 评论 -
java之深入理解toString()
首先有这样一个问题: Map map = new HashMap(); map.put(1, "a"); map.put(2, "a"); map.put(3, "a"); System.out.println(map);打印的结果是什么?我想很多人都知道,结果是下面这样。{1=a, 2=a, 3=a}那么问题来了,为原创 2017-10-27 11:21:25 · 886 阅读 · 1 评论 -
Java中Comparable和Comparator区别小结
阅读目录一、Comparable简介二、Comparator简介三、Comparable和Comparator区别比较回到顶部一、Comparable简介 Comparable是排序接口。若一个类实现了Comparable接口,就意味着该类支持排序。实现了Comparable接口的类的对象的列表或数组可以通过Collections.sort或Arrays.sort进行自动转载 2017-08-05 19:25:31 · 180 阅读 · 0 评论 -
java实现中缀转后缀,后缀计算值
本文主要内容:表达式的三种形式中缀表达式与后缀表达式转换算法一、表达式的三种形式:中缀表达式:运算符放在两个运算对象中间,如:(2+1)*3。我们从小做数学题时,一直使用的就是中缀表达式。后缀表达式:不包含括号,运算符放在两个运算对象的后面,所有的计算按运算符出现的顺序,严格从左向右进行(不再考虑运算符的优先规则),如:2 1 + 3 *。又比如3+(6-4/2)*5=原创 2017-09-17 20:23:54 · 2483 阅读 · 2 评论 -
java实现余弦计算文本相似性
相似度度量(Similarity),即计算个体间的相似程度,相似度度量的值越小,说明个体间相似度越小,相似度的值越大说明个体差异越大。对于多个不同的文本或者短文本对话消息要来计算他们之间的相似度如何,一个好的做法就是将这些文本中词语,映射到向量空间,形成文本中文字和向量数据的映射关系,通过计算几个或者多个不同的向量的差异的大小,来计算文本的相似度。下面介绍一个详细成熟的向量空间余弦相似度方法计转载 2017-09-23 20:54:12 · 1317 阅读 · 0 评论 -
Java 位运算(移位、位与、或、异或、非)
Java提供的位运算符有:左移( > ) 、无符号右移( >>> ) 、位与( & ) 、位或( | )、位非( ~ )、位异或( ^ ),除了位非( ~ )是一元操作符外,其它的都是二元操作符。1、左移( Test1、将5左移2位:[java] view plain copy package com.xcy; public class Test {转载 2017-09-23 16:51:01 · 187 阅读 · 0 评论 -
java中关于transient关键字小结
1. transient的作用及使用方法我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。然而在实际开发过程中,我们常常会遇到这样的问题,这个类的有些属性需要序列化,而其他属性不需要被序列化,打个比转载 2017-09-13 16:50:18 · 196 阅读 · 0 评论 -
步步深入:java.util.Arrays.sort
大家都知道,java给我们提供了排序的方法,即:java.util.Arrays.sort,在Arrays中,所有的方法都是static的,我们先来看看jdk说明:以sort(int[] a)为例:public static void sort(int[] a)对指定的 int 型数组按数字升序进行排序。该排序算法是一个经过调优的快速排序法,改编自 Jon L. Bentley原创 2017-08-05 10:42:21 · 783 阅读 · 0 评论 -
java一维数组、多维数组底层存储
一、深入数组(一)定义: 1、数组是编程语言中最常见的一种数据结构,可用于存储多个数据。Java的数组要求所有的数组元素具有相同的数据类型。2、数组是一个引用数据类型,数组的变量只是一个引用,数组元素和数组变量在内存里是分开存放的。(二)初始化1、静态初始化:初始化时由程序员显示指定每个数组元素的初始值,由系统决定数组长度。2、动态初始化:初始化时程序员只指定数组长转载 2017-07-28 15:04:20 · 831 阅读 · 0 评论 -
深入理解Java中的final关键字
Java中的final关键字非常重要,它可以应用于类、方法以及变量。这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使用final关键字的实例。final经常和static一起使用来声明常量,你也会看到final是如何改善应用性能的。final关键字的含义?final在Java中是一个保留的关键字,可以声明成转载 2017-11-13 16:28:31 · 150 阅读 · 0 评论 -
Java中的String为什么是不可变的? -- String源码分析
什么是不可变对象?众所周知, 在Java中, String类是不可变的。那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的。不能改变状态的意思是,不能改变对象内的成员变量,包括基本数据类型的值不能改变,引用类型的变量不能指向其他的对象,引用类型指向的对象的状态也不能改变。区分对象和对象的引用对于Java初学转载 2017-11-13 16:52:01 · 149 阅读 · 0 评论 -
Java中的static关键字解析
Java中的static关键字解析 static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一。下面就先讲述一下static关键字的用法和平常容易误解的地方,最后列举了一些面试笔试中常见的关于static的考题。以下是本文的目录大纲: 一.static关键字的用途 二.static关键字的误区 三.常见转载 2017-11-13 19:10:36 · 140 阅读 · 0 评论 -
二叉搜索树Java实现(查找、插入、删除、遍历)
本篇随笔就主要介绍 Java 实现二叉搜索树的查找、插入、删除、遍历等内容。 二叉搜索树需满足以下四个条件:若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值;任意节点的左、右子树也分别为二叉查找树;没有键值相等的节点。 二叉搜索树举例: 图一 接下来将基于...转载 2018-03-15 10:56:59 · 229 阅读 · 0 评论 -
创建和使用URL访问网络上的资源
URL(Uniform Resource Locator)是统一资源定位符的简称,它表示Internet上某一资源的地址。 通过URL我们可以访问Internet上的各种网络资源,比如最常见的WWW, FTP站点。浏览器通过解析给定的URL可以在网络上查找相应的文件或其他资源。 在目前使用最为广泛的TCP/IP中对于URL中主机名的解析也是协议的一个标准,即所谓的域名解析服务。转载 2018-01-08 16:38:02 · 721 阅读 · 0 评论 -
IO流_FileOutputStream写出数据实现换行和追加写入
package cn.itcast_01; import java.io.FileOutputStream; import java.io.IOException; /* * 如何实现数据的换行? * 为什么现在没换行呢?因为你只写了字节数据,并没有写入换行符号。 * 如保实现呢?写入换行符号即可呗。 * 看到有些文本文件是可以的,通过windo转载 2017-12-07 20:33:44 · 2054 阅读 · 0 评论 -
JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式+抽象工厂模式)
http://blog.csdn.net/jason0539/article/details/23020989转载 2017-12-24 15:47:43 · 140 阅读 · 0 评论 -
java static final 初始化
1.static修饰(类变量)一个属性字段,那么这个属性字段将成为类本身的资源,public修饰为共有的,可以在类的外部通过test.a来访问此属性;在类内部任何地方可以使用.如果被修饰为private私有,那么只能在类内部使用. public class Test{public static int a;//类连接时,默认初始为0,而又无类变量初始化语句或者静态初始化语句,故此类转载 2017-11-27 10:49:17 · 3514 阅读 · 0 评论 -
Java 静态代码块和非静态代码块
Java中的静态代码块是在虚拟机加载类的时候,就执行的,而且只执行一次。如果static代码块有多个,JVM将按照它们在类中出现的先后顺序依次执行它们,每个代码块只会被执行一次。非静态代码块是在类new一个实例的时候执行,而且是每次new对象实例都会执行。代码的执行顺序主调类的静态代码块对象父类的静态代码块对象的静态代码块对象父类的非静态代码块对象父类的构造函数对象的非静态代码块对原创 2017-11-27 10:45:14 · 255 阅读 · 0 评论 -
jsp+servlet实现上传图片
图片的上传是一个网站非常重要的功能,之前一直用框架做图片上传,却忽略了最基本的servlet方式上传图片,今天好好研究了一番,做个记录。首先需要明白的一点是:我们在工作空间新建一个web项目,图片上传究竟要上传到哪里去哪?这里我们要明白一点,图片是被上传到服务器上的,也就是tomcat服务器(假设您用的是tomcat)上的,比如:您的项目名是demo,您指定上传的图片路径如下:St原创 2017-12-22 11:18:28 · 30645 阅读 · 26 评论 -
如何用java做一个桌面游戏
也许很多同学都曾想过这样一个问题,那些在桌面上的图标一点击,游戏就运行了,这是怎么实现的那?今天让我来演示一下这中间的一个过程。1、首先这些游戏界面的出现,毫无疑问是java Swing做的,你只有学会了Swing,才能让界面做出来,我在此先附上一个别人做的五子棋的游戏,这不是重点,今天的重点是怎么实现桌面游戏。package cn.edu.lnu.util;import原创 2017-11-21 20:48:04 · 50871 阅读 · 17 评论 -
java 手动抛出异常
当然需要先用try catch捕获,但注意new Exception("")括号里的字符串其实是异常原因,所以获取是要用ex.getCause().getMessage() public void divide() throws Exception { int dylist = dyDao.findByHql("from ZcZcsqdy where y转载 2017-11-20 16:33:49 · 54631 阅读 · 0 评论 -
java中三种代理模式
1.代理模式代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法举个例子来说明代理的作用:假设我们想邀请一位明星,那么并不是直接连接明星,而是联系转载 2017-11-06 15:02:14 · 205 阅读 · 0 评论 -
java 根据vlaue获取key
//根据map的value获取map的key private static String getKey(Map map,String value){ String key=""; for (Map.Entry entry : map.entrySet()) { if(value.equals(entry.getValue())转载 2017-11-04 15:11:26 · 3863 阅读 · 0 评论 -
JAVA 关于String的CompareTo方法即字典序比较
按字典顺序比较两个字符串。该比较基于字符串中各个字符的 Unicode 值。将此 String 对象表示的字符序列与参数字符串所表示的字符序列进行比较。如果按字典顺序此 String 对象在参数字符串之前,则比较结果为一个负整数。如果按字典顺序此 String 对象位于参数字符串之后,则比较结果为一个正整数。如果这两个字符串相等,则结果为 0;compareTo 只有在方法 equals(Obje转载 2017-08-04 17:34:10 · 14017 阅读 · 0 评论 -
java非递归实现二叉树的遍历
1、中序非递归遍历思想 初始化栈,根节点入栈 若栈非空,则栈顶节点的左孩子依次进栈。直到null,则 访问栈顶节点,使栈顶节点出栈。若栈顶节点右孩子非空,则使右孩子进栈成为栈顶节点。重复至栈空。初始化二叉树如图所示:步骤如下:至此,中序输出顺序为:D->B->H->E->I->A->F->C->G原创 2017-07-22 20:56:42 · 362 阅读 · 0 评论 -
追根朔源java中的集合的toString
首先有这样一个问题:List list = new ArrayList();list.add("zhangsan");list.add("lisi");System.out.println(list);那么这样打印的结果会是什么那?[zhangsan, lisi]那么问题来了,‘[]’是从哪里来的那?我们知道,所有的对象在重写了Object类的toString()方原创 2017-07-14 11:37:36 · 282 阅读 · 0 评论 -
json数据转换异常:net.sf.json.JSONException: Java.lang.reflect.InvocationTargetException
执行:JSONArray array = JSONArray.fromObject(this.users);就会报以下错误:net.sf.json.JSONException: Java.lang.reflect.InvocationTargetExceptionusers是一个list集合方案一:JSONArray array = JSONArray.fromObject(this.users.原创 2017-07-13 16:28:27 · 4329 阅读 · 0 评论 -
字符、字节的概念及其区别
首先我们先看一下这个问题:“Java语言中字符串“学Java”所占的内存空间是几个字节?”,要回答这个问题我们就必须先要清楚什么是“字节”什么是“字符”。 字节(Byte):字节是通过网络传输信息(或在硬盘或内存中存储信息)的单位。字节是计算机信息技术用于计量存储容量和传输容量的一种计量单位,1个字节等于8位二进制,它是一个8位的二进制数,是一个很具体的存储空间。 字符:人原创 2017-07-13 16:28:19 · 271 阅读 · 0 评论 -
Java-web分页操作(jsp+servlet+javaBean)
一 分页操作分析分页在web项目中是非常重要的技术,打开每一个网页都可以看到分页1.疑问的出现在写分页前要了解什么是分页,分页一共有多少个方法、多少个参数,应该如何编写方法的实现和定义参数的变量2.疑问的解决 分页一般分为首页、上一页、下一页、末页,还要得到总记录数,总页数,下面来详细介绍一下它们的概念 如果设当前页为newPage (1)当前页 ---------原创 2017-07-13 16:28:04 · 344 阅读 · 0 评论 -
StringBuffer和StringBuilder的区别
1. 在执行速度方面的比较:StringBuilder > StringBuffer 2. StringBuffer与StringBuilder,他们是字符串变量,是可改变的对象,每当我们用它们对字符串做操作时,实际上是在一个对象上操作的,不像String一样创建一些对象进行操作,所以速度就快了。3. StringBuilder:线程非安全的 StringBuffer:线程安全的原创 2017-07-13 16:27:51 · 309 阅读 · 0 评论 -
MYSQL数据访问工具类DBUtils
package com.msun.util;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;public class DBUtil { private st原创 2017-07-13 16:27:19 · 173 阅读 · 0 评论 -
Tomcat中JVM内存溢出及合理配置(转ye1992专栏)
Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个Java虚拟机。Tomcat的内存溢出本质就是JVM内存溢出,所以在本文开始时,应该先对Java JVM有关内存方面的知识进行详细介绍。一、Java JVM内存介绍JVM管理两种类型的内存,堆和非堆。按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚原创 2017-07-13 16:26:29 · 129 阅读 · 0 评论 -
java 关于i18n
java提供了一个native2ascII工具用于将中文字符进行编码处理,native2ascII的用法如下所示:cmd-》进入命令窗口输入native2ascII键入中文:例如“用户名”控制台输出:\u7528\u6237\u540d原创 2017-07-13 16:25:29 · 176 阅读 · 0 评论 -
this关键字 转(孤傲苍狼)
this是一个引用,它指向自身的这个对象。看内存分析图: 假设我们在堆内存new了一个对象,在这个对象里面你想象着他有一个引用this,this指向这个对象自己,所以这就是this,这个new出来的对象名字是什么,我们不知道,不知道也没关系,因为这并不影响这个对象在内存里面的存在,这个对象只要在内存中存在,他就一定有一个引用this。看下面的例子分析:ortant;" >ortant;" r原创 2017-07-13 16:24:17 · 251 阅读 · 0 评论 -
关于Java的时间问题
之前一直在用Date类,Date类是在Java.util包中,不过在jdk1.1之后该类不被推荐使用,原因是这种方式获得的时间并不能被国际化,sun公司推出新的类Calendar用来获取时间。同样Calendar类也是被封装在Java.util包中。Calendar类是抽象类,不能被实例化,通过getInstance()获取实例,具体用法如下 Calendar ca = Calendar.get原创 2017-07-13 16:24:09 · 143 阅读 · 0 评论 -
数据库连接池
缓冲池是数据库连接池允许应用程序重用已存在于池中的数据库连接,以避免反复的建立新的数据库连接。这种技术能有效提高应用程序的伸缩性,因为有限的数据库连接能够给大量的客户提供服务。这种技术同时也提高的系统性能,避免了大量建立新连接的开销。当打开一个数据库连接时,一个数据库连接池也就创建了。数据库连接池的创建与数据库连接字符串精确的相关(包括空格、大小写)。所有的连接池是根据连接字符串来区分的。在创建一原创 2017-07-13 16:23:58 · 110 阅读 · 0 评论 -
==和equals的区别(转自 木瓜东)
equals方法和==的区别 首先大家知道,String既可以作为一个对象来使用,又可以作为一个基本类型来使用。这里指的作为一个基本类型来使用只是指使用方法上的,比如String s = "Hello",它的使用方法如同基本类型int一样,比如int i = 1;,而作为一个对象来使用,则是指通过new关键字来创建一个新对象,比如String s = new String("Hello")。但是原创 2017-07-13 16:23:08 · 167 阅读 · 0 评论