
Java学习笔记
文章平均质量分 83
夏小弥
键盘上的华尔兹
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JavaWeb---session活化与钝化
会话的持久化:本篇解决一个问题,就是当正在浏览页面的时候服务器突然关闭,浏览器不关闭,当再次开启服务器时还能够恢复关闭时的页面HttpSessionActivationListener 实现此接口的JavaBean,可以感知自己被活化(从硬盘到内存)和钝化(从内存到硬盘)的过程。如果需要同时保存Session中的JavaBean则JavaBean也要实现Serializable原创 2017-02-27 19:32:54 · 3369 阅读 · 0 评论 -
Java之------类加载器(一)
Java虚拟机中可以安装多个类加载器,系统默认三个主要类加载器,每个类负责加载特定位置的类:BootStrap, ExtClassLoader, AppClassLoader类加载器也是Java类,因为其他是java类的类加载器本身也要被类加载器加载,显然必须有第一个类加载器不是java类,这正是BootStrap。Java虚拟机中的所有类装载器采用具有父子关系的树形结原创 2016-05-07 15:13:15 · 493 阅读 · 0 评论 -
Socket编程------TCP文件传输(文档、声音、图片、视频和压缩包等)
本程序是基于TCP稳定传输的文件传输,可以兼容任何类型任何格式的文件传输。☆基本思路(客户端)客户端需要明确服务器的ip地址以及端口,这样才可以去试着建立连接,如果连接失败,会出现异常。连接成功,说明客户端与服务端建立了通道,那么通过IO流就可以进行数据的传输,而Socket对象已经提供了输入流和输出流对象,通过getInputStream(), getOutputStream()原创 2016-05-18 14:58:24 · 8627 阅读 · 1 评论 -
Java之------类反射系列(三)
练习(模拟Java内省的功能)★ 准备工作 定义一个Model类,里面所有的属性都是private的,然后为每个属性提供getter和setter方法;再准备一个Map,map的key值都是类里面的属性字段的字符串表示,值任意。 ★ 真正的工作 设计一个方法Object getModel(Map map,Class cls),传入一个包含所有值的Map,然后再传原创 2016-05-07 00:44:32 · 507 阅读 · 0 评论 -
Java之------类加载器(二)
做自己的类加载器虚拟机的核心是通过类加载器来加载.class文件,然后进行相应的解析执行。那么我们可以自己做类加载器,手动加载需要的.class以进行解析执行,从而扩展虚拟机的功能。 以下内容摘自API文档:应用程序需要实现 ClassLoader 的子类,以扩展 Java 虚拟机动态加载类的方式。网络类加载器子类必须定义方法 findClass 和 loadCla原创 2016-05-07 16:02:29 · 380 阅读 · 0 评论 -
Java之------类反射系列(一)
什么是类反射☆什么是反射JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。反射(Reflection)是Java程序开发语言的特征之一,它允许运行中的Java程序对自身进行检查, 也称自审,并能直接操作程序的内部属性。原创 2016-05-06 22:20:10 · 494 阅读 · 0 评论 -
Java之------类反射系列(二)
反射使用的三个步骤用于反射的类,如Method,可以在java.lang.reflect包中找到。使用这些类的时候必须要遵循三个步骤:第一步:获得你想操作的类的java.lang.Class对象。在运行中的Java程序中,用java.lang.Class类来描述类和接口等。第二步:调用诸如getDeclaredMethods的方法,取得该类中定义的所有方法的列表。第三步:使原创 2016-05-06 23:58:49 · 457 阅读 · 0 评论 -
Java之------JUnit(二)
自制JUnit上一篇JUnit的博客里面讲了关于它的使用方法,这一片就来自制一个JUnit看看吧关于MyEclipse里面的JUnit是已经嵌入到了系统中的,我们无法完全实现JUnit的功能,但基本的还是可以实现。首先,需要写一个注解MyTest(Annotation):package cn.hncu.myJUnit;import java.lang.annotatio原创 2016-05-06 20:16:57 · 441 阅读 · 0 评论 -
Java之------注解 ( Annotation )
★ 元数据 所谓元数据就是数据的数据。也就是说,元数据是描述数据的。就象数据表中的字段一样,每个字段描述了这个字段下的数据的含义。 元数据可以用于创建文档,跟踪代码中的依赖性,甚至执行基本编译时检查。许多元数据工具,如XDoclet,将这些功能添加到核心Java语言中,暂时成为Java编程功能的一部分。 一般来说,元数据的好处分为三类:文档编制、原创 2016-05-06 20:50:42 · 757 阅读 · 0 评论 -
Socket编程------模拟QQ聊天(TCP)
模拟QQ聊天一、要求1、一个服务器可以与多个用户同时通讯2、用户可以通过服务器与用户之间通讯3、用户可以选择和所有人发消息,也可以选择和某个用户单独发消息4、服务器要显示当前所有在线人员5、用户要显示当前在线的人员6、当有新用户登录时或在线用户退出时,服务器要向所有其他在线用户发送提示信息,并且服务器也要显示相应的提示信息7、不能原创 2016-05-17 20:08:30 · 2504 阅读 · 0 评论 -
Java之------JUnit(一)
JUnit软件测试技术(工具)在项目中建立专门用户测试的包结构。在Junit中,通过@Test注解,可以单独运行一个方法,即在一个方法上面一行加一句@Test。★ Junit注解说明使用了@Test注解应该满足以下条件: 1)、必须是无参数的非静态方法。 2)、添加@Test注解的类,必须拥有一个无参数的公开构造方法★ JUnit测试示例原创 2016-05-06 14:01:49 · 448 阅读 · 0 评论 -
字符串截取
题目描述:在java中,字符串“abcd”与字符串“ab你好”的长度是一样,都是四个字符。但对应的字节数不同,一个汉字占两个字节。定义一个方法,按照指定的字节数来取子串。如:对于“ab你好”,如果取三个字节,那么子串就是ab与“你”字的半个,那么半个就要舍弃。如果取四个字节就是“ab你”,取五个字节还是“ab你”。此题需要考虑的是编译器的编码格式,一般都是GBK、U原创 2016-05-04 17:36:20 · 555 阅读 · 0 评论 -
文件切割机
文件切割Java的文件切割实质上是利用的IO对文件进行读和写,原理很简单,只要熟练运用IO即可。一、按大小切:package cn.hncu.io.fileSplit;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io原创 2016-05-04 17:07:35 · 691 阅读 · 0 评论 -
Java中获取文件大小的正确方法
本文出处:http://blog.youkuaiyun.com/chaijunkun/article/details/22387305,转载请注明。由于本人不定期会整理相关博文,会对相应内容作出完善。因此强烈建议在原始出处查看此文。今天写代码时需要实现获取文件大小的功能,目前有两种实现方法,一种是使用File的length()方法;另外一种是使用FileInputStream的availa转载 2016-05-02 12:35:05 · 588 阅读 · 0 评论 -
Java设计模式之------单例模式
单例模式a、单例模式:单例是最简单的很常用的一种设计模式,保证了一个类在内存中只能有一个对象。思路: 1) 如果其他程序能够随意用new创建该类对象,那么就无法控制个数。因此,不让其他程序用new创建该类的对象。 2) 既然不让其他程序new该类对象,那么该类在自己内部就要创建一个对象,否则该类就永远无法创建对象了。 3) 该类将创建的对象对外(整个系统)提供,让原创 2016-05-04 01:39:42 · 418 阅读 · 0 评论 -
Java之------socket查看指定URL的Web页编辑器及HTML文档
本例只能用于查看比较简单的网页,像是现在jsp开发的网页有很多地方时无法显示的,但这种程序还是值得学习一下的package cn.hncu.url;import java.util.Date;import java.text.SimpleDateFormat;import java.awt.event.*;import javax.swing.*;import javax.swin原创 2016-05-08 16:07:22 · 945 阅读 · 0 评论 -
Java设计模式---代理模式(一)
代理模式什么是代理模式呢?我很忙,忙的没空理你,那你要找我呢就先找我的代理人吧,那代 理人总要知道被代理人能做哪些事情不能做哪些事情吧,那就是两个人具备同一个接口,代 理人虽然不能干活,但是被代理的人能干活呀。 比如西门庆找潘金莲,那潘金莲不好意思答复呀,咋办,找那个王婆做代理,表现在程 序上时这样的: 先定义一种类型的女人: package com.cbf4lif原创 2016-11-18 10:55:25 · 357 阅读 · 0 评论 -
Java设计模式---代理模式(二)---动态代理
动态代理动态代理和代理模式实质是一样的,只是要更加灵活。代理模式请见本博客另一篇文章 ”Java设计模式---代理模式(一)“例、房东接口:package cn.hncu.pool.day2.proxy.demo1;public interface IRenter { public void rent(int i);}房东:package cn.hncu原创 2016-11-28 18:17:27 · 373 阅读 · 0 评论 -
Ant(蚂蚁搬家)
Ant什么是AntAnt是一个构建工具,是一个小程序。但是它通过自动完成所有的编译代码,运行测试以及打包重新部署的结果等繁琐费力的任务来帮助软件团队开发大程序. Ant 使用Java编写,跨平台,易使用且可伸缩。既可以用在小型个人项目中,也可以用于大型多团队软件项目。Ant的目标是自动完成所有的构建过程。Ant的核心概念构建文件:-build.xmlAnt使用称之为构建文件的xm...原创 2018-11-29 10:20:14 · 1083 阅读 · 0 评论 -
Java之------常用的设计模式
一、单例模式a、单例模式:单例是最简单的很常用的一种设计模式,保证了一个类在内存中只能有一个对象。思路: 1) 如果其他程序能够随意用new创建该类对象,那么就无法控制个数。因此,不让其他程序用new创建该类的对象。 2) 既然不让其他程序new该类对象,那么该类在自己内部就要创建一个对象,否则该类就永远无法创建对象了。 3) 该类将创建的对象对外(整个系统)提供原创 2016-05-23 19:10:09 · 4114 阅读 · 0 评论 -
Java之------IO从基础到加强(二)
RandomAccessFile1、随机访问文件,自身具备读写的方法new RandomAccessFile()之后,若文件不存在会自动创建,存在则不创建。——该类其实内部既封装了字节输入流,又封装了字节输出流。该类若用write()方法写整数,每次只写它的最后一个字节。而采用writeInt()方法,则可把一个整数完整地写入。 2、通过skipByte原创 2016-05-30 23:20:34 · 3215 阅读 · 0 评论 -
杭电ACM---1002(大数)
A + B Problem IITime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 305668 Accepted Submission(s): 59062Problem DescriptionI have a原创 2016-04-27 23:32:31 · 605 阅读 · 0 评论 -
Java之------IO从基础到加强(一)
一、概念1、文件的逻辑结构流式文件记录式文件2、文件的存取方法顺序存取随机存取3、文件的使用操作接口应用程序接口4、流的定义和作用流的定义、方向性和读/写操作流采用缓冲区技术流的作用:简单的说就是控制文件的输入和输出5、流的存在原创 2016-06-02 23:11:13 · 646 阅读 · 0 评论 -
Java之------socket系列(三)
练习:UDP聊天程序通过键盘录入获取要发送的信息。将发送和接收分别封装到两个线程中。聊天方一:package cn.hncu.url.udp;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStre原创 2016-05-08 16:29:10 · 820 阅读 · 0 评论 -
Java之------socket系列(二)UDP
☆ UDP:将数据及源和目的封装成数据包中,不需要建立连接每个数据报的大小在限制在64k内因无连接,是不可靠协议不需要建立连接,速度快DatagramSocket和DatagramPacket类UDP传输:DatagramSocket与DatagramPacket建立发送端,接收端。建立数据包。调用Socket的发送接收方法。关闭So原创 2016-05-08 16:14:12 · 594 阅读 · 0 评论 -
Java之------socket系列(一)
网络编程相关基础概念:1、计算机网络与Internet2、TCP/IP协议 3、Internet地址IP地址,形如xxx.xxx.xxx.xxx 域名系统。例如www.edu.cn URL(统一资源定位符) 协议 :// 主机 [: 端口] [/ 文件] [# 引用]客户-服务器(Client-Server)模式 网络模型与通讯要素:原创 2016-05-08 15:53:12 · 576 阅读 · 0 评论 -
Java设计模式之------装饰模式
装饰模式装饰模式:在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。例:写一个MyBufferedReader类,使它能够对字符流(如FileReader、InputStreamReader和PipedReader等)进行功能增强:(1) 提供带缓冲的myRead()方法,对原有的read()方法进行增原创 2016-05-04 01:33:59 · 691 阅读 · 0 评论 -
Java之------socket网络蜘蛛
网络蜘蛛网络蜘蛛可以通过网页超链接进入到更多的的网页,将需要的信息提取出来。本篇蜘蛛将从新浪主页开始爬,提取网页中的邮箱地址。本篇主要采用了递归的算法,层层深入搜索,但我在这里设置了一个限制,就是只递归到50层就返回回去,你想无限搜索的就把限制去掉。本篇将搜索到的网址和邮箱地址都用IO写到了文件当中去,采纳者可以自己指定一个路径或者按本例在classpath下建立相同的文件原创 2016-05-12 10:25:16 · 694 阅读 · 0 评论 -
Java之------socket模拟服务器、浏览器、网络蜘蛛
C/S 与 B/S☆ C/S ( Client/Server ) 客户端和服务端的特点1、客户端和服务端的软件都需要程序员进行编写。2、客户端维护起来较为麻烦。3、客户端的存在可以将一部分运算分离到客户端来运行,减轻了服务器端的压力。☆ B/S ( Browse/Server ) 浏览器和服务端的特点1、客户端不用程序员编写,直接使用系统中具备的浏览器软件作原创 2016-05-11 21:17:43 · 1178 阅读 · 0 评论 -
Java之------多线程(从基础到加强及交互线程)
一、基础篇:1、线程的定义线程(thread)是操作系统进程中能够独立执行的实体(控制流),是处理器调度和分派的基本单位。 2、线程的属性并发性,共享性,动态性,结构性3、线程的状态4、线程的调度★主要是通过实现Runnable接口和继承Thread类来实现线程的调度和操作a、Runnabl原创 2016-05-24 22:28:25 · 4134 阅读 · 0 评论 -
Java之------设计思想
设计思想,是需要不断领悟的。。。一、封装学Java的人都知道这是向对象的编程语言,从字面上理解,就是针对对象的一些操作,将具有某一特性的实体封装成一个类或者是将具有一定功能的方法,抽取出来封装成一个供外面调用的方法,然后通过new这个类或方法生成对象,最后通过对对象进行操作或者实现相应的功能。如将一个人封装成一个人的类,人有属性:性别,年龄,出生原创 2016-05-24 13:09:48 · 4530 阅读 · 3 评论 -
数据结构之------深度优先搜索(DFS)
深度优先搜索在编程时经常需要用到搜索,因此掌握搜索算法是很重要的,这里介绍一下深度优先搜索并附上代码样例1、深度优先搜索思想 深度优先搜索遍历类似于树的先序遍历。假定给定图G的初态是所有顶点均未被访问过,在G中任选一个顶点i作为遍历的初始点,则深度优先搜索递归调用包含以下操作:(1)访问搜索到的未被访问的邻接点;(2)将此顶点的visited数组元素值置原创 2016-05-24 13:27:14 · 1378 阅读 · 0 评论 -
Java设计模式之------值对象模式
值对象模式在Java开发时,需要来回交换大量的数据,比如要为方法传入参数,也要获取方法的返回值值对象的本质是“封装数据”。值对象模式在开发中用的很多,要熟练掌握。基本的编写步骤:第1步:写一个类,实现可序列化(如果以后数据是往数据库里存的,那么可以不序列化,节省资源)第2步:私有化所有属性,保持一个默认构造方法(public无参)第3步:为每个属原创 2016-05-24 13:14:49 · 1365 阅读 · 0 评论 -
Java设计模式之------工厂模式
工厂模式场景和问题:Java开发讲究的是面向接口编程,需要通过一个工厂类隐藏具体的实现类先创建接口(接口在设计之初就要定好,开发过程中不允许随意改动接口):工厂类的命名规范:***Factory单例工厂方法的命名规范:getInstance()工厂的本质是“选择实现”工厂、接口和实现类之间的技术边界:工厂只负责选择实现原创 2016-05-24 13:12:34 · 438 阅读 · 0 评论 -
Java之------多线程(加强篇)
加强篇1、线程互斥锁a、多线程互斥共享“基本数据类型数据”资源,锁(用synchronized关键字)的必须是对象,基本数据类型的变量不能当作对象锁,同时,要保证多线程使用的是同一个互斥锁(对象锁),才能进行同步。b、多线程互斥共享“栈”资源举例:多窗口买票package thread.ticket.v1; public class Selli原创 2016-05-24 12:51:51 · 4076 阅读 · 2 评论 -
Java之------大数(BigInteger,BigDecimal)
Java大数1、java.math.BigInteger类不可变的任意精度的整数。所有操作中,都以二进制补码形式表示。BigInteger 提供所有 Java 的基本整数操作符的对应物,并提供 java.lang.Math 的所有相关方法。另外,BigInteger 还提供以下运算:模算术、GCD 计算、质数测试、素数生成、位操作以及一些其他操作。BigInteger中要申明一原创 2016-05-24 12:32:20 · 725 阅读 · 0 评论 -
Java之------集合
集合一、集合的概念书面解释:集合是包含多个对象的简单对象,所包含的对象称为元素。集合里面可以包含任意多个对象,数量可以变化;同时对对象的类型也没有限制,也就是说集合里面的所有对象的类型可以相同,也可以不同。集合:数量不限、类型不限;数组:定长、类型单一。个人理解:集合是数组的一种扩展,集合里面可以存放多种数据类型和对象,同时集合可自由扩充,也就是自由添加元素,而数组不能原创 2016-05-23 23:56:05 · 4664 阅读 · 2 评论 -
Java之------socket系列(四)TCP
TCP传输TCP Socket:IP地址和端口,套接字Socket和ServerSocket建立客户端和服务器端建立连接后,通过Socket中的IO流进行数据的传输关闭socket同样,客户端与服务器端是两个独立的应用程序。TCP传输编程☆基本思路(客户端)客户端需要明确服务器的ip地址以及端口,这样才可以去试着建立连接,原创 2016-05-10 12:44:23 · 827 阅读 · 0 评论 -
Java之------socket网页蜘蛛(多线程版)爬邮箱
网页蜘蛛网页蜘蛛可以通过网页超链接进入到更多的的网页,将需要的信息提取出来。本篇蜘蛛将从新浪主页开始爬,提取网页中的邮箱地址。本篇主要采用了递归的算法和多线程,每遇到一个超链接就开一个新的线程进行访问,每一个线程只在一个页面里面活动,层层深入搜索,在这里可以设置了一个限制,就是只递归到50层就返回回去,由于是开的多线程,每一个线程在一个页面的尽头自然会结束,但当原创 2016-05-25 22:52:55 · 847 阅读 · 0 评论