自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 在校大学生,重学Java中

所有文章都是我在学习中记的笔记 ,部分来自于其它材料 ,写博客只为了复习和共享知识,如何人不得将文章用于谋取利益或非法用途 !违者依法追究责任

2020-05-08 21:20:57 93

原创 Socket通信之多线程监听客户端

上一节的中我们只是实现了一次通讯,下面我们要做的例子可以允许多个客户机,多次发送信息给服务器。一、思路要实现这个功能,服务器需要不断的等待新的客户机连接,每一个新的客户机连接,我们就启动一个新的线程来维护与当前的客户机的socket连接,客户输入“bye”是,这个客户就退出。如果你忘记了线程,最好先回去复习一下。二、实现1.线程类package server;import java.io.*;import java.net.*;public class SocketThread extend

2020-05-18 13:09:12 957

原创 Socket通讯,小白高强度学习!

一、socket通讯套接字(Socket)表示一个系统的IP地址和端口号的结合,是两台机器间通信的端点,用来处理两个流对象,通讯方式抽象成为流的方式。通讯的两台计算机,一台担任服务器,一台担任客户机,服务器监听客户机是否连接。java.net.ServerSocket和java.net.Socket两个类用于建立一个双边的通信。ServerSocket类实现服务器,等待来自客户端的连接;Socket连接到一个服务器端,担任客户机。创建TCP Socket需要的四个信息:本地系统的IP本地应用程序

2020-05-18 12:36:39 211

翻译 URL类统一资源定位和Inetaddress类简介

一、Inetaddress类1、主机名解析前面讲过IP地址是唯一标识一台计算机,但是我们也可以使用主机名访问。另外,我们平时上网时就是访问另外一台计算机提供的服务,但是我们在浏览器上面输入的确不是IP地址而是域名,因为IP地址是一些无意义的数字,比较难记忆,所以才会出现域名这个技术,但是IP地址依然是计算机的唯一标识,所以我们就需要把域名或者主机名解析成IP地址,才能定位计算机。域名或者主机名到IP地址的解析通过使用本地机器配置信息和网络命名服务(如域名系统(Domain Name System,DN

2020-05-17 19:04:55 417

翻译 网络相关理论基础

一、什么是网络计算机网络就是实现了多个计算机互相连接的系统,相互连接的计算机之间彼此能够进行数据交换。把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模宏大、功能强大的网络系统,从而使众多的计算机可以方便地互相传递信息,共享硬件、软件、数据信息等资源。没有网络的计算机世界是枯燥无聊的,正式因为有了网络才有现在这么多姿多彩的计算机世界,联网有什么作用呢,简单归纳一下:计算机的联网可以实现:1、使用远程资源;2、共享信息、程序和数据;3、分布处理。二、网络分类1、按照网络规模和范

2020-05-17 18:45:25 505

原创 swing的入门

java实现图形界面是非常复杂的,用一两天的时间是不可能全部讲完的,但是我们并不想深入的进行讲解,因为我们以后主要还是学习B/S结构的系统。如果大家想深入学习可以买一本专门讲解swing的相关书籍。一、什么是swingSwing是一个用于开发Java应用程序用户界面的开发工具包,可以用来设计图形化界面。在java中第一版的图形用户接口GUI包叫AWT,比较失败。它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的

2020-05-17 18:11:34 320

翻译 死锁

一、死锁同步有可能会导致另一个问题,就是死锁。死锁是指两个线程,都相互等待对方释放,死锁有时是不可测知或避开的,我们应该应采取措施避免死锁的出现。二、死锁的例子当然,这是一个反面例子。1、定义一个资源类,为了标识每个资源,该类只有一个属性,就是资源名称。代码如下:public class Resource { private String Name; public String getName() { return Name; } pu

2020-05-15 20:31:30 136

翻译 线程同步

一、什么是线程的同步1、线程同步的意义线程的同步是为了保证代码的原子性,**保证每个线程在调用对象同步方法独占的方法操作该对象。**一段代码就好像一座独木桥,任何一个时刻,只能有一个人在桥上行走,程序中不能有多个线程同时在这两句代码之间执行,这就是线程同步。比如:银行的自动柜员机,一次只能一个人取钱,其他人必须排队。公司的打印机虽然是多台电脑共用的,但是每次也只能一台电脑在打印。同步是以牺牲程序的性能为代价的。所以,如果确定程序没有安全性的问题,就没有必要使用同步。2、同步的实现,使用synchro

2020-05-15 20:26:02 1116

翻译 线程示例和传参问题

为了使大家对线程有更深的认识,这里举两个简单的例子说明一下:一、倒计时示例这个例子比较简单,要求程序每一秒中就输出一个数字,模拟倒计时。要实现每隔一秒才输出,只需要让程序输出一个数字就休眠1秒的时间,实现代码如下:public class ThreadDaoJi extends Thread{ public void run() { for(int i=10;i>0;i--) { System.out.println(i); try { Thread.currentTh

2020-05-15 19:55:52 128

翻译 线程的概念和两种实现方法

一、线程概念现代的操作系统都是多用户多进程分时操作系统,所以我们在使用操作系统时,可以一边听歌,一边下载,还可以聊天等等,事实上我们的操作系统同时还运行着很多后台进程,你可以打开window系统的任务管理器就可以看到很多进程在运行。在往下学习之前,让我们先弄清楚什么是程序,进程和线程这几个概念。1、程序:利用编程语言开发的一个工具软件, 静态的,在没有启动运行之前只是磁盘中的一个普通文件。2、进程:程序启动之后就变成了进程,进程是在内存中运行的,具有一定的生命周期,如果程序运行解析,进程在内存中就

2020-05-15 19:24:39 248

翻译 压缩与解压缩(2)

一、GZIP压缩GZIP常常用在linxu环境下,是一种非常简单的压缩算法。在Java实现API中,它仅仅包含两个实现类:GZIPInputStream和GZIPOutputStream。 GZIPOutputStream类用于压缩,GZIPInputStream类用于解压缩。**1.压缩,**封装方法如下:public static void compress(InputStream is, OutputStream os) throws Exception {

2020-05-14 18:42:41 89

翻译 压缩与解压(1)

一、压缩简介在平时使用windows操作系统时,压缩与解压都是经常性操作,不同的压缩算法对应不同的压缩格式,一般现在经常使用的压缩格式有.rar,.zip,.7z的压缩格式。在java系统中,API提供了压缩与解压的工具类可以轻松完成压缩解压的任务,由于更像是工具类,因此这两组不同压缩格式的类被放在util工具集包中,它们看上去更像流类型:java.util.zip.ZipInputStream/java.util.zip.ZipOutputStreamjava.util.zip.GZIPInput

2020-05-14 18:39:09 155

翻译 Serializable序列化

一 、Serializable序列化序列化(serialization)指将一个java Object实例写入一个字节流的过程,序列化对象可以将其状态存储成文件,这一过程又被称作对象的持久化,可以将序列化后的对象进行网络传输,总之,序列化是个有趣的过程。既然存在序列化,就有反序列化,反序列化是字节流将会被正确地恢复成Object对象。在java中序列化是通过实现接口java.io.Serializable,Serializable接口是一个标记性接口,它告诉JVM将实现他的对象转换成一系列二进制字节,并

2020-05-14 18:14:34 3242

翻译 RandomAccessFile

一、RandomAccessFile讲解RandomAccessFile类不属于InputStream或者OutputStream分层结构的一部分,它实现了DataInput和DataOutput。RandomAccessFile用于包含了已知长度记录的文件,我们可以使用seek()方法从一条记录移至另一条,可在一个文件里向前或向后移动,然后读取或修改那部分的记录,不像之前的InputStream和OutputStream的实现类那样,每次都从头开始读取。构造器要求使用者传入一个变量指出对象只是随机读(

2020-05-13 20:04:45 124

翻译 datainputstream和dataoutputstream

一、datainputstream和dataoutputstream使用BufferedInputStream/BufferedOutStream读写的并不是纯二进制数据,因此在有些时候,比如网络互传时会有出现文件无法恢复的问题,除非是纯文本文件。要解决文件流的通用性就必须使用纯二进制的方式读写数据,这时我们可以选择使用DataInputStream/DataOutputStream对数据使用二进制的方式进行读写,比如以DataInputStream为例,字节入流的API结构]显示了其继承于java.io

2020-05-13 19:55:01 453

翻译 带缓冲的流

一、什么是带缓冲的流在字符流中可以使用带缓冲的字符流提高文件读写的效率,这种效率的提高是显著的而且有时是必须的。带缓冲提供一个较大的缓冲区,通过减少文件读取或写入次数以提高IO流的效率,比如相比较使用一个int的长度是4byte临时变量,使用而默认的BufferedReader缓冲区大小是4k byte,减少读取的次数是4×1024/8=1024倍。缓存流可以修饰原始的字节流和字符流,带缓存的字节流类是:java.io.BufferedInputStream和java.io.BufferedOutput

2020-05-13 19:36:46 205

翻译 字符流

一、字符流有了上一节学习字节流的经验,那么字符流就比较简单了。文件在计算机中的作用是存储信息,要读写这些信息需要使用流的相关类型。大量的文字信息都是以字符的方式存在的,Java中的字符是Unicode编码,每个字符是双字节的。字符流从Reader和Writer派生出的一系列类,这类流以16位的Unicode码表示的字符为基本处理单位,处理效率相对字节流Stream极大提高,但局限与只能处理文本类文件。字符流层次结构的顶层是Reader和Writer抽象类,实现类都是以使用Reader或Writer结尾,如

2020-05-12 18:59:27 105

翻译 字节流

一、理解流的概念流是对计算机中输入输出进行的抽象。流是指一连串流动的字符,是以先进先出方式发送信息的通道,在java中流的实现建立在四个抽象类的基础上:InputStream、OutputStream、Reader和Write。其中InputStream/OutputStream设计成输入/输出字节流类,而Reader/Writer设计为输入/输出字符流设计。字节流类和字符流类形成分离的层次结构。一般说来**,处理字符或字符串时应使用字符流类,处理字节或二进制文件对象时应用字节流类。**InputStr

2020-05-12 18:52:24 281

翻译 File文件的基本操作

一、File类简介File类不但代表文件和目录的双重含义,还表示一个刚新建于内存中尚未同步去硬盘的文件或目录。File类的作用描述了文件本身的属性,包括用来获取或处理与磁盘文件相关的信息,例如大小、权限、生成时间、最后修改时间和目录路径等等。此外,浏览子目录层次结构也是经常做的操作。尽管File类的实例对象并不打开文件,也不提供任何文件内容的处理功能。但是其他java.io包中的类通常都需要使用File对象来指定要操作的文件或目录。二、注意问题由于File需要和操作系统的文件打交道,而Window和L

2020-05-12 17:57:23 302

翻译 properties属性文件

一、properties属性文件属性文件Properties是hashTable的子类,一种特殊的java资源文件,常被用于记录一些程序运行时的配置数据,这种文件可以“享有”和class一样的待遇,在java的classpath中被加载,要获得当前系统环境值时,可以使用System.getProperties()方法取得。属性文件是以一种键值对(key:value)的文本格式存储数据,以“回车”分隔两个键值对。调用Properties的默认参构造器可以生成一个没有初始值的Properties实例,该实例是

2020-05-11 14:40:40 173

翻译 Map接口和HashMap实现

一、Map接口Map意为映射,java.util.Map接口规定了一组通过键值对(key-value)方式组织的集合,Map的数据也是不能保证顺序的,也就是Map中数据的顺序与放置的先后顺序无关,其基本操作时get和put,即放置数据和取数据,我们一般是通过键key获得其对应的值value。我们在通过键取值时,不管数据量,一般其随机访问速度都是一致的,但是如果经常需要遍历整个Map的所有数据,那么Map可能就不是最好的选择。二、HashMap实现HaspMap实现了Map接口,所以在键值对存储关系中

2020-05-11 14:22:28 454

翻译 TreeSet介绍

一、TreeSet介绍TreeSet的数据结构可以理解为是二叉树数据结构,我们可以使用TreeSet实现排序功能,TreeSet通过定义一个比较容器Comparator来完成集合对象中的排序。二、TreeSet代码示例public class Student{ //属性 private String name; private int age; //写操作 public void setName(String name){ this.name=name; } //读操作 publi

2020-05-11 11:39:38 899

翻译 Set接口,HashSet实现

一、Set接口介绍Set与离散数学中的一个“集合”概念类似,集合的特点是无序的和不允许有重复的数据,在java编程中的所谓重复数据是指使用Object的equals()方法进行比较返回true时的两个对象,Set中的顺序也是按照java自己的排序方式与用户放置数据的先后顺序无关,所以我们也可以理解为是“无序”的。在Set中可以放入空值,但同理也只能放一个null 元素。常用的Set实现类有HashSet、HashTable和TreeSet。二、HashSet介绍1.HashSet介绍HashSet

2020-05-11 11:04:02 197

翻译 LinkedList

一、LinkedList介绍LinkedList实现了链表的数据结构,链式结构使得LinkedList相对于顺序结构的ArrayList来说,在列表中插入数据或删除数据时效率更高。它实现了List接口并继承于AbstractSequentialList。构造方法如下:LinkedList();//创建默认空链表LinkedList(Collection c);//创建链表,将现有集合c放入链表//由于都是实现List接口,所以和ArrayList的很多方法都是一致,其实现虽然完全不同,不过方法的调用

2020-05-10 19:44:08 140

翻译 ArrayList

一、集合框架介绍集合框架有一个共有的接口Collection,集合对象就是将多个元素组成一个单元的对象,集合数据的一般操作就是用于存储、检索、删除和修改等操作。集合框架是用于表示和操纵集合的统一体系结构。java集合框架的优点:1.提供有用的数据结构和算法,从而减少编程工作2.提高了程序速度和质量,因为它提供了高性能的数据结构和算法3.允许不同 API 之间的互操作,API之间可以来回传递集合4.可以方便地扩展或改写集合java集合框架提供了四种容器可以选择使用,分别是Queue、List、S

2020-05-10 19:19:15 147

原创 Random随机数类

一、Random随机数类1、简介Random随机数类是一个非常简单和实用类,用于生成伪随机数,在一些游戏获得某些应用中都会大量使用到随机数,构造方法有两个,分别是:Random() 创建一个新的随机数生成器。Random(long seed) 使用单个 long 种子创建一个新的随机数生成器。如果用相同的种子创建两个 Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列,所以一般我们在一段程序中使用一个Random示例,或者为每个Random示例使用不同的种子。

2020-05-09 17:14:57 353

原创 Calendar类

一、Calendar类 简介java.util.Calendar意为日历,跟Date类有很多类似的地方,但是也有区别的,Date类主要用于时间的表示,而Calendar侧重于时间的计算。Calendar类是一个抽象基类,需要通过工厂方法去取得当前系统日历:Calendar calendar=Calendar.getInstance();Calendar与Date的转换非常简单,如下 :Calendar calendar=Calendar.getInstance();//从一个Calendar对象

2020-05-09 17:09:05 111

翻译 Date类

Date类util是utility(即:中文工具)的简写,也就是java的实用工具集包,该包提供了大量的实用工具类,常用工具如日期与时间操作、随机数、正则表达式、国际化等,而在util包中比较核心的应该是Collection类集工具,java系统提供了丰富的数据结构用于出集合的操作。一、Date类 简介日期类主要包括Date类与Calendar类,这一节我们先介绍Date类, Date 表示特定的瞬间,精确到毫秒。Date类用于表示日期和时间,在计算机中的表示和我们现实世界使用差不多,但是还是有点区别

2020-05-09 16:55:48 92

原创 自定义异常和throw、throws的使用

一、自定义异常类我们知道所有的异常都是Exception,所以我们需要自定义异常只需要继承那个Exception类就可以了。下面我们自定义一个异常类,代码如下:/** * 自定义异常, *///继承 Exceptionpublic class MyException extends Exception{ public MyException(String message){ //出现异常打印的语句 super(message); }}二、

2020-05-08 21:59:56 155

原创 异常的嵌套和级联

当我们需要try尝试捕获的异常不止一个,那么我们需要如何处理呢?一、分开捕获或嵌套使用先看一段代码public class Cal{ public int div(int a,int b){ int result=a/b; return result; } public static void main(String[]args){ Scanner scanner=new Scanner(System.in); int s=0; int num1=0; int n

2020-05-08 21:17:26 217

原创 常见的异常类型

一、各种常见的异常在lang包中定义的常见异常有Exception //异常层次结构的根类RunTimeException //许多java.lang异常的基类ArithmeticException //算数异常IllegalArgumentException //方法接收到非法参数ArrayIndexOutOfBoundException //数组大于或小于实际的数组大小NullPointerException //尝试访问null对象成员ClassNotFoundException //

2020-05-08 20:44:01 379

原创 异常处理的基本概念和流程

一 、异常的基本概念在java中把导致程序中断运行的情况分为两种,一种就是异常,而另外一种叫做错误。所有异常的基类是Exception,错误的基类是Error。Exception是在java程序中可以编码进行控制的,具有可编程性,而Error是指Java运行时系统来显示与运行时系统本身有关的错误,Error对于程序员来说是灾难性的,程序无法控制,比如jvm堆栈溢出错误,操作系统分配内存错误等。不管是Exception还是Error,他们的共同父类是java.lang.Throwable(可抛出的) 类。

2020-05-08 20:05:51 1114

原创 Math类

Math类是一个很有用的数学帮助类,使用也非常简单,这个类比较特殊,首先他和String类一样都是用final修饰,所以不能有子类,还有就是它的构造方法是私有的,也就是我们不能通过new的方法在其它类中构造Math对象,那么我们怎样调用它的方法,原来它的所有的方法都是静态方法,也就是可以直接使用类名就可以访问方法了。一、方法简介static double abs(double a)返回 do...

2020-05-07 21:03:28 128

原创 StringBuffer and StringBuilder

一、StringBufferStringBuffer用于表示可以修改的字符串public StringBuffer() //保留16个字符的空间public StringBuffer(int length) //设置缓存器大小public StringBuffer(String value) //接受字符串参数,用来设置初始内容,并在不重新分配的情况下保留16个字符的空间St...

2020-05-07 20:36:14 74

原创 String字符串

一、String字符串定义 String字符串和char字符不同,char使用单引号,只能表示一个字符,字符串就是一段文本。String是个类。这个类使用final修饰,所以这个类是不可以继承扩充和修改它的方法的。String类又特别常用,所以在对String对象进行初始化时,它可以不像其它对象一样,必须使用new关键字构造对象。Java提供了一种简化的特殊语法。String...

2020-05-07 19:30:33 153

原创 java赋值中的别名机制

对一个对象进行赋值操作时,我们真正操作的是对对象的引用。所以如果“将一个对象赋值给另一个对象”,实际上是将“引用”从一个地方赋值到另一个地方。如对对象使用a=b,那么a和b都将指向原本只有b指向那个对象。下面通过具体例子展示:class Tank{int level;}public class Text{ public static void main(String []args){ ...

2020-03-01 19:18:13 134

空空如也

空空如也

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

TA关注的人

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