Java-我的大学生涯
文章平均质量分 62
我会在这里分享一些我在大学生涯中学习java所遇到的问题以及一些有用的知识点。
逸川先生
Java开发工程师,专注后台开发两年,擅长分布式系统
展开
-
Java中的序列化
序列化将一个对象存放到某种类型的永久存储器上称为保持。如果一个对象可以被存放到磁盘或磁带上,或者可以发送到另外一台机器并存放到存储器或磁盘上,那么这个对象就被称为可保持的。(在Java中,序列化、持久化、串行化是一个概念。)java.io.Serializable接口没有任何方法,它只作为一个“标记者”,用来表明实现了这个接口的类可以考虑串行化。类中没有实现Serializable的对象不...原创 2019-10-19 22:31:31 · 151 阅读 · 0 评论 -
解决Frame闪烁问题(双缓冲)
与paint方法同级,加上这段代码就OK了private Image offScreenImage = null; public void update(Graphics g) { if(offScreenImage == null) { //这是游戏窗口的宽度和高度 offScreenImage = this.createImage(Constant.G...原创 2019-10-16 10:50:18 · 758 阅读 · 2 评论 -
如何使用LigerUI(从数据库到表格显示的一个示例)
最近做的项目使用到了LigerUI,所以最近会分享一些关于使用过程中所遇到的问题。LigerUI官网:http://www.ligerui.com/1.先到官网下载LigerUI,解压、打开有两个文件夹图:2.document文件夹是LigerUI的API文档,写的不是很详细,如果看不懂可以看源码Source文件夹是放源码的, 使用浏览器打开index.htm就是官方提供的...原创 2018-08-15 14:21:23 · 1856 阅读 · 0 评论 -
多个servlet之间跳转的一些笔记
1、servlet中的两个输出流:字节流(response.getOutputStream()) 和字符流(response.getWriter()) 1)用字节流输出时,中文要采用out.write("中文".getBytes()),不能用print("中文")。 对于字节流,用response.setCharacterEncoding("utf-8")设了也不行。 ...原创 2018-09-03 23:17:42 · 302 阅读 · 0 评论 -
隐藏帧技术(Ajax底层原理)
举个栗子,用户注册的时候填写了表单信息,希望能及时看到用户名是否可用并且如果用户名要是不可用的话,表单不提交,原来的信息还在页面中,这时就需要隐藏帧技术了,也就是Ajax的底层原理。写一个简单的注册页面 步骤大概是这样的:然后就是代码:1.注册页面<%@ page language="java" contentType="text/html; chars...原创 2018-09-08 09:06:19 · 584 阅读 · 0 评论 -
XmlHttp - Ajax技术
XmlHttp是什么?最通用的定义为:XmlHttp是一套可以在Javascript、VbScript、Jscript等脚本语言中通过http协议传送或从接收XML及其他数据的一套API。XmlHttp最大的用处是可以更新网页的部分内容而不需要刷新整个页面。来自MSDN的解释:XmlHttp提供客户端同http服务器通讯的协议。客户端可以通过XmlHttp对象(MSXML2.XMLHTTP....原创 2018-10-01 00:35:59 · 7855 阅读 · 0 评论 -
jQuery实现可编辑表格
可编辑表格,这个东西听起来挺高大上,其实用jQuery来实现,了解一下思路,就很简单1.事实上是编辑td里面的内容,所以给他一个双击事件2.双击完了这个td将其变为一个input,里面的值还保留着3.最后就是失去焦点的时候还原,就欧克了<%@ page language="java" contentType="text/html; charset=UTF-8" pageEn...原创 2018-10-15 08:28:41 · 6158 阅读 · 0 评论 -
jQuery - 遍历
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %><!DOCTYPE html&原创 2018-10-15 08:30:38 · 214 阅读 · 0 评论 -
jQuery实现Ajax通讯的几种常用方式
这里介绍3种jQuery.get( url, [ data ], [ success(data, textStatus, jqXHR) ], [ dataType ] )jQuery.post( url, [ data ], [ success(data, textStatus, jqXHR) ], [ dataType ] )jQuery.ajax( url, [ settings ...原创 2018-10-15 21:59:27 · 1418 阅读 · 0 评论 -
错题 - 关于继承
public class Test { public static void main(String [] args){ System.out.println(new B().getValue()); } static class A{ protected int va...原创 2018-09-15 15:23:32 · 292 阅读 · 0 评论 -
Java读取配置文件
两种:一种是配置文件在当前类同一个包下的;一种是在src下的,使用类加载器1. 2.代码:以读mysql配置信息为例1.创建对象2.load( )加载3.读取package cn.bl.v1;import java.io.IOException;import java.io.InputStream;import java.sql.Connection;i...原创 2018-09-18 17:16:54 · 190 阅读 · 0 评论 -
设计模式 -- 动态代理
动态代理的技术入口就是java.lang.reflect.Proxy类按照我目前的了解,动态代理是一种AOP编程技术,比如过滤器Filter就是这样的,spring的AOP思想的具体技术就是动态代理,最最主要的就是玩类反射 。代理其实有静态和动态之分,显然动态的更好啦。比如框架中的框架Sprin里面最为核心的拦截器就是将动变代理成了可配置的方式方便使用。使用动态代理,需要一个接口,和...原创 2018-09-20 16:36:20 · 139 阅读 · 0 评论 -
线程局部变量 - ThreadLocal
做事务处理的时候会有一个问题,就是两个不同的模块,都需要同一个connection(为了统一的事务处理,回滚或者提交),然后又不能在参数中传递connection,ThreadLocal正好可以解决这个问题。ThreadLocal其实就是一个池Map<Thread,Object>,每一个线程过来都可以拿到当前线程的Value,可以穿透不同的类,只与线程有关。package t...原创 2018-09-22 15:13:06 · 467 阅读 · 0 评论 -
dbutils的基本使用方法
我这里使用到了c3p0的连接池,可以参考这个链接:c3p0的基本使用方法dbutils只是一个工具类,如果不使用hibernate这种大型的框架,可以考虑使用.。因为他可以大大的简化我们的代码jar包可以到官网下载,也可以在这里下载:Java连接数据库的工具类 主要使用到QueryRunner、ResultSetHandler<T>这两个类而QueryRunner主要使...原创 2018-09-24 00:23:36 · 2360 阅读 · 0 评论 -
简单介绍BASE64Encoder的使用
BASE64Encoder 其实是在jkd中的,但是默认不开放,在API中也是找不到的所以先看看怎么将其导入:右击项目--build path-->>configure build path-->>双击Access rules-->>edit-->>edit-->>修改为accessible,Rule Patter...原创 2018-09-29 16:37:22 · 28542 阅读 · 0 评论 -
Ant工具
用Ant工具管理你的Web应用程序下载地址:http://ant.apache.org/Ant是一个构建工具,是一个小程序。但是它通过自动完成所有的编译代码,运行测试以及打包重新部署的结果等繁琐费力的任务来帮助软件团队开发大程序. Ant 使用Java编写,跨平台,易使用且可伸缩。既可以用在小型个人项目中,也可以用于大型多团队软件项目。Ant的目标是自动完成所有的构建过程。l构...原创 2018-10-01 08:38:00 · 2892 阅读 · 0 评论 -
spring-security进行MD5加密
@Test public void testMD5(){ Md5PasswordEncoder encoder = new Md5PasswordEncoder(); String username = "barry";//作为干扰因素,也就是说,密码一样,只要username不一样,res也是不一样的 String pwd = "666"; String res = enc...原创 2018-10-01 15:02:59 · 2366 阅读 · 0 评论 -
@Transaction - 注解方式处理事务
1.自定义注解类import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;@Retention(RetentionPolicy....原创 2018-10-01 15:43:50 · 2401 阅读 · 0 评论 -
Java对XML的增删改查的一个例子 - 联系人操作
效果: 一.准备XML<?xml version="1.0" encoding="UTF-8" standalone="no"?><contacts> <user> <name>sam</name> <password>111111&原创 2018-08-21 17:29:02 · 981 阅读 · 0 评论 -
MD5加密
import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import org.junit.Test;public class MD5Demo { public String getMD5(String pwd) throws NoSuchAlgorithmException {...原创 2018-08-27 09:02:41 · 100 阅读 · 0 评论 -
jstl--forEach
jstl和el表达式是开发当中常用的语言,而且通常都是夹着使用,来看看jstl中的循环语句forEach的基本用法<%@page import="java.util.HashMap"%><%@page import="java.util.Map"%><%@page import="cn.hncu.domain.User"%><%@page imp原创 2018-06-09 20:40:56 · 322 阅读 · 0 评论 -
利用UDP协议实现两台电脑之间的信息交流
关于UDP:将数据及源和目的封装成数据包中,不需要建立连接;每个数据报的大小在限制在64k内;因无连接,是不可靠协议;不需要建立连接,速度快使用udp协议主要涉及到两个类:DatagramSocket,DatagramPacketDatagramSocket: 用于建立一个数据包的出口或入口,构造方法中有IP的都是用于接收方的DatagramPacket: 用于包装数据,构造方法中有I...原创 2018-05-10 15:52:54 · 10398 阅读 · 0 评论 -
使用TCP协议向服务器上传一个图片
上传要求:客户端需求:把一个图片文件发送到服务端并读取回馈信息。要求判断文件是否存在及格式是否为jpg或gif并要求文件小于2M。服务端需求:接收客户端发送过来的图片数据。进行存储后,回馈一个 上传成功字样。支持多用户的并发访问。特别说明,为了避免法律纠纷,程序员应该将上传文件的电脑IP记录下来import java.io.BufferedInputStream;import java.io.B...原创 2018-05-10 15:57:22 · 2293 阅读 · 0 评论 -
JavaScript基本语法
1.js基于对象,而Java是面向对象。js和Java是两门不同的语言面向对象,也就是对象和程序分离,程序可以操纵对象,程序独立与对象。基于对象,也就是对象已经有了,程序在它的基础上才能执行,没有对象,就没有这个程序。2.js可以内嵌到HTML中,代码不需要像C或者Java那样先编译后执行,而是直接在浏览器读一行,执行一行,后面的代码有bug,不会影响前面的代码的执行。3.js的数据类型有五种:b...原创 2018-06-08 23:43:21 · 153 阅读 · 0 评论 -
Java类反射的应用
刚刚写了一篇类反射的笔记:一个相当详细的Java类反射笔记 ,然后现在再来把他实现一下首先设定一下类反射的应用场景,现在我有一个接口public interface Inte { public abstract void init(); public abstract void servlet(); public abstract void destroy();}然后我前面已经有了...原创 2018-04-12 22:16:33 · 194 阅读 · 0 评论 -
Junit和注解
1.谈谈Junit5:Junit目前最新的是Junit5,是基于JDK8环境下完全新开发的单元测试工具。但是感觉现在还是使用Junit4的居多,体验过5的,最新的eclipse,JDK8环境,但是测试的时候总是会有警告出来,不过结果还是能出来的,只是前面会经常多几行警告。2.Junit的使用: @Test public void testXXX() { }在方法前面写一个注解@Test,...原创 2018-06-08 16:09:06 · 1570 阅读 · 0 评论 -
使用类反射写一个自己的Junit Test
import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;@Retention(RetentionPolicy.RUNTIME)@T...原创 2018-06-08 16:11:24 · 273 阅读 · 0 评论 -
深搜解决倒油问题 --面向过程
/** * 从盛12斤油(a桶)的桶中倒出6斤油来,可是手边只有盛8斤油(b桶) * 和盛5斤油(c桶)的两个桶,问如何操作才能将6斤取出来呢? * 面向过程方法倒油: */public class PoulOil2 { public static int max[] = new int[] { 12, 8, 5 };// 桶的最大容量 public static final int...原创 2018-03-28 12:23:49 · 926 阅读 · 0 评论 -
异或运算交换两个数的陷阱
今天又复习了一下快排堆排,结果死活找不到错误,最后发现是中了异或的邪!老师讲这个的时候可是不会讲到的啊当两个数相同的时候,它自己异或了三遍,于是出现产生0的情况应该防范一下,并不是都可以使用异或来交换的...原创 2018-03-31 23:34:10 · 497 阅读 · 0 评论 -
Java设计思想首部曲
组件封装体设计思想设计思想讲解:对“组件”概念的理解:从设计角度来看,本质上,系统、子系统、模块、组件等这些都是一个组件,只是根据其相对大小而给予的一个称呼。如有的软件项目称为系统,但如果把它整合到一个更大的项目中,那它就被称为一个子系统甚至模块或组件了。如一个类似航天航空那样的大项目,其中的一个小模块比别人的整个系统都要大多少倍。这就好比大公司的一个部门,比别人一个公司的规模还要大得多。组件:能...原创 2018-04-12 17:04:25 · 725 阅读 · 0 评论 -
一个相当详细的Java类反射笔记
以前老师经常说,Java类反射就是Java中的神仙,一直都十分好奇这到底是个什么东西,下面我们一起来探讨一下吧1、什么是反射技术?动态获取指定类以及类中的内容(成员),并运行其内容。应用程序已经运行,无法在其中进行new对象的建立,就无法使用对象。这时可以根据配置文件的类全名去找对应的字节码文件,并加载进内存,并创建该类对象实例。这就需要使用反射技术完成2、获取class对象的三种...原创 2018-04-12 19:21:00 · 332 阅读 · 0 评论 -
Java大数处理
Java关于大数处理Java.math里面有两个类:BigInteger 和 BigDecimal.前者是大整数处理,后者是高精度处理。其实两者的使用方法都是十分类似的,他们没有普通的数学运算符操作(+,-,*,/,%),所有这些操作都是通过函数来实现的,并且一般的函数参数也都是大数(BigDecimal或BigInteger对象)。BigInteger的使用: //求阶乘 @Test pub...原创 2018-04-04 23:10:07 · 925 阅读 · 1 评论 -
玩转Java泛型
泛型的基本概念1.什么时候使用泛型:泛型在Java中有着至关重要的作用,Java中所有的集合都需要使用到泛型。只要在使用类或者接口时,该类或者接口在api文档描述时都带着<>,就需要在使用时定义泛型。其实,泛型无非就是通过<>定义了一个形式参数,专门用于接收具体的引用类型。在使用时,一定要传递对应的实际参数类型。2.泛型的檫除:泛型是JDK1.5之后出现的,所以为了避免修改...原创 2018-04-06 21:26:30 · 206 阅读 · 0 评论 -
两种比较器的使用
今天发现Java中有两种比较器,原来之前一直是用的util包的比较器,还有一个lang包的比较器没用过,就试了一下。其实这两个比较器的内部原理都是归并排序算法,故具有稳定性,并且时间复杂度可以达到O(N*logN)使用方法其实也差不了多少,不过我觉得util包的更为简便好用1java.util.Comparator<T>import java.util.Arrays;import j...原创 2018-03-18 20:18:51 · 964 阅读 · 0 评论 -
参加会议问题
有人邀请A,B,C,D,E,F 6个人参加一项会议,这6个人有些奇怪,因为他们有很多要求,已知: 1)A,B两人至少有1人参加会议; 2)A,E,F 3人中有2人参加会议; 3)B和C两人一致决定,要么两人都去,要么两人都不去; 4)A,D两人中只1人参加会议; 5)C,D两人中也只要1人参加会议; 6)如果D不去,那么E也决定不去。那么最后究竟有原创 2018-01-07 13:06:14 · 586 阅读 · 0 评论 -
可变参
可变参数:适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理。(在方法内部可以当作数组来使用,但调用该方法的时候,它是一个序列)可变参尽管是定义为某一种类型的,而实际是它的底层是object,可以接受任何类型,因此可变参数必须位于最后一项。当可变参数个数多于一个时,必将有一个不是最后一项,所以只支持有一个可变参数。可变参数的书写形式如: int add(in原创 2018-01-07 13:16:22 · 229 阅读 · 0 评论 -
克隆方法clone()的使用
protected Object clone() throws CloneNotSupportedException创建并返回此对象的副本。 “复制”的精确含义可能取决于对象的类。对于任何对象x 表达式: x.clone() != x。只是将类“复制过来”,并不需要重新new ,这在需要很多对象的时候提供了效率上的提高clone()方法位于java.lang.object,是pro原创 2018-01-07 23:06:54 · 2830 阅读 · 0 评论 -
正则表达式的简单介绍
在编写处理字符串的程序时,经常会有查找符合某些复杂规则的字符串的需要,正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。正则表达式类似Windows下的通配符*和?。只不过比起通配符,它能更精确地描述你的需求简言之,正则表达式是用于进行文本匹配的工具,也是一个匹配的表达式。正则表达式看API中的:java.util.regex包中Pattern类原创 2018-01-08 00:13:47 · 273 阅读 · 0 评论 -
java的输入输出流与文件操作(1.基本定义)
1.关于文件的一些定义文件的逻辑结构:流式文件、记录式文件(例如数据库就是记录式的,但底层还是流式)文件的存取方法:顺序存取、随机存取(同上,数据库就是典型的随机存取,也就是指定位置的存取)文件的使用:操作接口、应用程序接口2.流采用的是缓冲区技术,输入的时候是阻塞的,必须等待到数据的输入(因此在线程的synchronized里面是不建议等待输入的)3.流类分为四大类I原创 2017-12-09 19:48:54 · 1166 阅读 · 0 评论 -
java的输入输出流与文件操作(2.读入写出及关流)
1.如何读取文件。可以一个字节一个字节的读,也可以使用缓冲,一块一块数据的读。一般使用第二种,因为比较快。@Test public void TestRead() throws IOException { byte buf[] = new byte[1024]; FileInputStream fin = new FileInputStream("E:/test/io.txt原创 2017-12-09 20:37:35 · 3263 阅读 · 0 评论