自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Always`的博客

从前不回头,往后不将就!

  • 博客(17)
  • 资源 (1)
  • 收藏
  • 关注

原创 使用DOM4J解析XML文件

简介XML可扩展标记语言,是一种数据交换格式,与操作系统和编程语言的开发平台无关,实现不同系统之间的数据交换。XML在不同的编程语言中都是一样的,只是实现的语法不同。XML在格式上和HTML有点相似,HTML中的标签是语法规定好的,而XML中的标签可以由开发者自己定义,只要不违反语法规则即可。XML有四种解析方式:DOM解析,SAX解析,JDOM解析,DOM4J解析。今天我们简单的来了解一下DOM...

2018-04-27 15:31:30 528

原创 多线程之等待唤醒机制

简介什么叫做等待唤醒机制呢?举一个栗子,请看下图:当我们开启两条线程时,一条线程专门输入数据,另条取数据。并且要实现,输入一个数据过后,另一方取出一个数据。在多线程的情况下,当输入线程抢到CPU的执行权后,下一次还有可能是输入线程抢到CPU的执行权,就达不到我们想过要的效果。因此,我们需要输入线程执行一次过后,就让它等待,并叫醒输出线程。然后让输出线程执行,执行一次后等待,并且叫醒输入线程。就这样...

2018-04-26 16:00:18 1586

原创 使用UDP发送消息

1.简介在osi(七层网络架构:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层)中,TCP和UDP属于同一层即传输层,IP属于网络层。TCP在传输时,需要建立稳定可靠的连接(三次握手和四次挥手)。UDP则不需要,只需指定数据报所发送的地址和端口即可。TCP/UDP各有优缺点。TCP比较稳定,但是效率低(建立连接的过程中比较耗时)。UDP不稳定(没有稳定连接可能会丢包),但是效率比较高。...

2018-04-25 16:29:28 3021

原创 TCP文件传输

网络协议里面有个FTP(文件传输协议),专门用于传输文件。但今天我们用Socke直接实现客户端与服务器端的文件传输,只需要在上次的Socke通讯中稍作改变,就可以达到文件传输的目的。步骤1.创建服务器端package FileSocket;import java.io.*;import java.net.ServerSocket;import java.net.Socket;publi...

2018-04-24 16:20:27 1678

原创 HashMap中,4种遍历方式。

在HashMap中,有一个明显的特征。在存储的时候,会有一个键值对的关系。键和值存在着一一对应(映射)的关系。而HashMap中的键相当与Set,无序不可重复。因此,在遍历的时候可以用Set集合得到HashMap中的键,然后通过Set集合得到迭代器,最后用迭代器遍历。遍历方式1.直接用for循环遍历 public static void print_for(HashMap<Intege...

2018-04-23 13:21:17 2419

原创 TCP+多线程,让发送消息和接收消息各占一条线程

在上次Socket通讯 使用Socket实现简单的聊天功能 中。客户端和服务器只有一方可以发送消息,另一方则只能等待(接收消息),而且不能连续发送消息。因为发送消息和接受消息共有一条线程,需要来回的切换。这时我们就要专门为发送消息和接受消息各创建一个线程,就可以一次性发送多条消息。步骤1.创建一个发送消息Send类package ThreadSocket;import java.io.IOEx...

2018-04-22 18:01:43 9554 11

原创 线程同步下的死锁机制

死锁比如说有两个线程T1和T2,在线程同步的情况下,有两个锁L1和L2。当T1线程持有L1锁,想去访问L2锁住的资源。当T2线程持有L2锁,想去访问L1下面的资源。这个时候T1和T2线程就会彼此僵持着,两个线程都不肯让步,等待彼此释放资源(开锁),就这样无限等待中。。。手写死锁程序创建两个锁对象public class Lock { public static Object lock1=n...

2018-04-21 15:58:29 295

原创 使用TCP实现简单的聊天功能

简介当我们在网上进行数据传输的时候,首先需要建立稳定的连接(针对于TCP),然后通过Socket(套接字)将数据以流的方式输入输出,让双方的数据进行交互。而对于UDP,只需要知道对方的地址即可,不需要进行稳定的连接。TCP比较稳定,效率低。UDP效率比较高,但不稳定。用TCP实现简单聊天功能创建一个客户端和一个服务器端,模拟通讯创建一个服务器端package Socket;import jav...

2018-04-20 16:19:37 5372 1

原创 PrintWriter和PrintStream用法

简介PrintWriter和PrintStream是两个打印流,当我们需要对数据进行输出时,一般用的会比较多。比如说Socket通信,数据通过Socket流入流出,在流出的时候可能会用到PrintWriter。在选择这两个流的时候,如果需要对字符操作用PrintWriter,字节操作则用PrintStream。使用当我们用PrintWriter时,需要指定文件名,或者自定义一个字节输出流或字符输出...

2018-04-19 16:22:08 1248

原创 实现多线程的两种方式

简述在程序中,靠一个线程执行任务是比较缓慢的。有时,我们需要开启多线程,并发处理,提高程序的执行效率。进程和线程对于一个应用程序而言就是一个进程,当我们打开任务管理器的时候,可以看见每个运行的程序(进程)详情。线程是进程的最小执行单元,一个进程最起码有一个线程(主线程),可能会有多个线程。实现多线程的两种方式1.直接继承Thread创建一个类继承Thread并重写run方法package MyTh...

2018-04-18 15:37:48 673

原创 BufferedInputStream和BufferedOutputStream字节缓存流及字符缓存流的使用

简介在IO流里面有4个缓存流,分别是:BufferedInputStream,BufferedOutputStream,BufferedReader,BufferedWriter。当我们用read()读取文件时,每读一个字节,访问一次硬盘,效率很低。就算用到read(byte [ ])每次读取多个字节,当文件过大时,操作起来也不是很方便。因此我们需要用到buffer缓存流,当创建buffer对象时...

2018-04-17 16:50:26 2375

原创 FileOutputStream写入中文字符后,然后用FileInputStream一个个读取,出现的乱码问题。

问题在我们用FileOutputStream写入中文和英文,然后用FileInputStream一个个读出来时,发现中文字符会出现乱码,而英文字符保持不变。看如下代码:package FileStream;import java.io.*;import java.util.Scanner;public class Dome { public static void main(St...

2018-04-16 16:58:50 6312 1

原创 FileReader和FileWriter读写文件,以及拷贝文件。

简介如果看了上一篇 FileInputStream和FileOutputStream读写文件,然后实现文件的拷贝。那么对与这篇就是小菜一碟。唯一区别在于上一个是基于字节流,这个基于字符流。字节流就用byte数组充当缓存,字符流用char数组即可。文件拷贝package FileReaderWriter;import java.io.File;import java.io.FileReader;...

2018-04-16 15:07:32 2005

原创 FileInputStream和FileOutputStream读写文件,然后实现文件的拷贝。

IO流Java里面分为两种流:字节流和字符流。如果细分的话有,可分为:4个文件流,4个缓冲流,2个转换流,2个打印流,2个序列化流,2个数据流。//文件流FileInputStream //字节输入流FileOutPutStream //字节输出流FileReader //字符输入流FileWriter ...

2018-04-15 12:14:42 20985

原创 Java设计模式之单列模式

简言单列模式:单一,也就是说一个类只能有一个对象。就类似于有些软件只能打开一次,当需要保证一个对象在内存中的唯一性时,就需要引入单列模式。实现步骤创建单列模式分三步操作:1.将构造函数私有化2.在类中创建一个本类对象3.提供一个公有的接口来返回创建的类相关说明我们访问类里面的数据时,分两种情况:1.通过实例化对象,然后通过对象的引用“.”出方法或属性。2.通过类名“.”调用类里面静态的方法或属性。...

2018-04-14 01:41:22 377

原创 Java设计模式之工厂方法模式

前言java有23中设计模式。设计模式在Java编程里面用处非常的多,如果把开发一个项目比喻成盖房子,在盖房子的过程中不同的位置需要不同的设计方式,如果设计的好,房子会更耐用更美观。在开发过程中有时就要引入设计模式,让代码可重用,保证代码可靠性,提高开发效率等。介绍工厂方法模式:顾名思义,类似于一个工厂对不同的产品进行加工,然后分配给需要该产品的商家。步骤第一步:创建抽象产品类Peoplepack...

2018-04-13 14:17:29 231

原创 Java递归:求阶乘、阶加、斐波那契数列以及遍历文件夹中所有文件名。

在编程中有些时候我们需要用同一个函数来解决有重复操作的问题,简而言之就是调用其本身。如果一个函数直接调用其本身的话,会造成类似于死循环的这种错误。因此,在递归的过程个需要掌握两个条件,来避免这种错误。1.递归的临界条件,也就是递归的出口。2.求解问题的规律,作为递归调用的条件。首先将这些方法封装在Recursion这个类中,并且静态。public class Recursion{ //求...

2018-04-12 15:37:03 1189

SSM+Servlet图书管理系统

里面包含SSM+SSH+Servlet三种类型的图书管理系统。其中SSH可能不怎么完整,可以参考修改。希望能帮到各位新手!

2018-12-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除