初级阶段1-Java入门(一)
文章平均质量分 85
Java语言是全世界最流行的程序语言,你将会从最基础的开始学习,打下良好的基础,你以后才能学得更好。如果你大学期间已经学习Java,那么这部分内容你可以快速的浏览一次,但是如果你没有学习过Java,那么你就最好耐心的学习。
JavaDayUp-远行客
这个作者很懒,什么都没留下…
展开
-
63、客户端实现
客户端需要实现的功能主要是登录、发送信息和即时显示聊天信息。界面也是对象比较简单,大家需要建立两个窗口界面:1、登录界面和聊天界面,界面比较简单,不做讲解了。一、封装功能类我们先把客户端端所需要用到的功能封装起来,在com.dao包中新建Client类,实现代码如下: 1 2 3 4 5 6 7 8 9 10...原创 2018-11-05 17:40:22 · 287 阅读 · 0 评论 -
62、服务器端的实现
我们还是先实现服务器端的功能。你可以先参考前面的描述的界面,先把界面设计好,由于比较简单,这里我就不讲解了。一、实现服务器对应每个客户端的线程类。在com.dao包中新建一个Server2ClientThread类,该类是服务器端类的核心功能,其实现思路与上一天所讲的差不多,也是每一个客户端就对应一个线程来维护,不同的是,服务器需要记录所有的在线用户和信息,而这些信息是所有的用户共享的,所...原创 2018-11-05 17:39:49 · 268 阅读 · 0 评论 -
61、项目概述和界面设计
学习目标:1、完成多人聊天项目的开发2、掌握Jar项目的打包和部署学习过程:一、项目概述本系统功能是实现多用户可以进行即时聊天,采用客户机/服务器的模式,服务器的功能是启动服务,等待用户的连接,记录所有的用户信息和聊天信息。客户端的功能是输入服务器的IP地址、端口和用户名后就可以登录服务器,每一个登录的用户都可以发送信息和即时浏览其它用户发送的信息,实现即时聊天的功能。本系统功...原创 2018-11-05 17:38:03 · 365 阅读 · 0 评论 -
60、使用多线程监听多客户端
学习目标:1、结合服务器端多线程处理客户端连接学习过程:上一节的中我们只是实现了一次通讯,下面我们要做的例子可以允许多个客户机,多次发送信息给服务器。一、思路要实现这个功能,服务器需要不断的等待新的客户机连接,每一个新的客户机连接,我们就启动一个新的线程来维护与当前的客户机的socket连接,客户输入“bye”是,这个客户就退出。如果你忘记了线程,最好先回去复习一下。思路图如下...原创 2018-11-05 17:37:33 · 483 阅读 · 0 评论 -
59、socket通讯
学习目标:1、了解Socket的概念2、掌握Socket服务器端和客户端开发学习过程:一、socket通讯套接字(Socket)表示一个系统的IP地址和端口号的结合,是两台机器间通信的端点,用来处理两个流对象,通讯方式抽象成为流的方式。通讯的两台计算机,一台担任服务器,一台担任客户机,服务器监听客户机是否连接。java.net.ServerSocket和java.net.S...原创 2018-11-05 17:36:59 · 154 阅读 · 0 评论 -
58、URL类统一资源定位和Inetaddress类简介
学习目标:1、了解Inetaddress类的使用2、了解URL类的基本使用学习过程:一、Inetaddress类1、主机名解析前面讲过IP地址是唯一标识一台计算机,但是我们也可以使用主机名访问。另外,我们平时上网时就是访问另外一台计算机提供的服务,但是我们在浏览器上面输入的确不是IP地址而是域名,因为IP地址是一些无意义的数字,比较难记忆,所以才会出现域名这个技术,但是IP...原创 2018-11-05 17:36:25 · 181 阅读 · 0 评论 -
57、网络相关理论基础
学习目标:1、了解网络的基本知识2、了解IP、域名、端口、协议等基本概念学习过程:一、什么是网络计算机网络就是实现了多个计算机互相连接的系统,相互连接的计算机之间彼此能够进行数据交换。把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模宏大、功能强大的网络系统,从而使众多的计算机可以方便地互相传递信息,共享硬件、软件、数据信息等资源。没有网络的计算机世界是枯...原创 2018-11-05 17:35:55 · 450 阅读 · 0 评论 -
56、弹出框和多个窗口之间的切换
学习目标:1、掌握使用Swing实现弹出框功能2、使用Swing切换窗口3、新窗口的定义和弹出学习过程:一、弹出框1、简介Java 中的对话框是一个容器,它充当父容器的子容器 Swing中的弹出式对话框是用JOptionPane实现的, 通过showXXXDialog()来显示.其方式都是静态的。JOptionPane 可用于显示各种图标,如用于警告消息、问题、错误和...原创 2018-11-04 21:11:49 · 1251 阅读 · 0 评论 -
55、控件、事件处理和布局介绍
学习目标:1、了解Swing提供的控件2、掌握控件的不同的事件器学习过程:这里我们就一一介绍一下swing中常用的一些控件。一、常用控件实例:先看看那下图,初步了解一下每个控件的基本形式。1、jLableJLabel() JLabel()创建一个默认的 JLabel 实例 JLabel(String text) 以指定的文本创建 JLabel 实...原创 2018-11-04 21:11:17 · 272 阅读 · 0 评论 -
54、Swing实例讲解
学习目标:1、Swing插件的基本使用学习过程:下面我们完成一个简单的计算机,大家可以自己动手完成这个功能。一、后台页面逻辑。新建com.dao包,新建一个Cal类。代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...原创 2018-11-04 21:10:47 · 340 阅读 · 0 评论 -
53、Swing的入门
学习目标:1、了解什么是Swing2、掌握Swing的开发插件的使用学习过程:java实现图形界面是非常复杂的,用一两天的时间是不可能全部讲完的,但是我们并不想深入的进行讲解,因为我们以后主要还是学习B/S结构的系统。如果大家想深入学习可以买一本专门讲解swing的相关书籍。一、什么是swingSwing是一个用于开发Java应用程序用户界面的开发工具包,可以用来设计图形化...原创 2018-11-04 21:10:07 · 653 阅读 · 0 评论 -
52、线程池
学习目标:1、初步了解线程池的基本概念2、掌握Java提供的几种线程池类的使用3、初步了解callable的使用学习过程:Java通过Executors提供四种线程池,分别为:1、newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。2、newFixedThreadPool 创建一个定长线程池...原创 2018-11-04 21:09:32 · 104 阅读 · 0 评论 -
51、死锁
学习目标:1、了解多线程常见的一些错误2、了解死锁产生的原因学习过程:一、死锁同步有可能会导致另一个问题,就是死锁。死锁是指两个线程,都相互等待对方释放,死锁有时是不可测知或避开的,我们应该应采取措施避免死锁的出现。二、死锁的例子当然,这是一个反面例子。1、定义一个资源类,为了标识每个资源,该类只有一个属性,就是资源名称。代码如下: 1 2 ...原创 2018-11-04 21:09:08 · 118 阅读 · 0 评论 -
50、线程的同步
学习目标:1、了解线程锁、同步等概念2、掌握synchronized的基本使用3、端正学习态度学习过程:一、什么是线程的同步1、线程同步的意义。线程的同步是为了保证代码的原子性,保证每个线程在调用对象同步方法独占的方法操作该对象。一段代码就好像一座独木桥,任何一个时刻,只能有一个人在桥上行走,程序中不能有多个线程同时在这两句代码之间执行,这就是线程同步。比如:银行的自动...原创 2018-11-04 20:35:00 · 371 阅读 · 0 评论 -
49、线程示例
学习目标:1、能使用线程实现一些简单的功能2、灵活的定义线程类学习过程:为了使大家对线程有更深的认识,这里举两个简单的例子说明一下:一、倒计时示例这个例子比较简单,要求程序每一秒中就输出一个数字,模拟倒计时。要实现每隔一秒才输出,只需要让程序输出一个数字就休眠1秒的时间,实现代码如下: 1 2 3 4 5 6 7...原创 2018-11-04 20:34:31 · 293 阅读 · 0 评论 -
48、线程概念
学习目标:1、了解线程的基本概念2、了解Thread线程类的使用3、了解Runnable接口的使用4、了解Callable接口的使用学习过程:一、线程概念现代的操作系统都是多用户多进程分时操作系统,所以我们在使用操作系统时,可以一边听歌,一边下载,还可以聊天等等,事实上我们的操作系统同时还运行着很多后台进程,你可以打开window系统的任务管理器就可以看到很多进程在运行...原创 2018-11-04 20:33:59 · 1038 阅读 · 1 评论 -
47、压缩与解压(2)
学习目标:1、掌握使用GZIP压缩和解压的操作 学习过程:一、GZIP压缩GZIP常常用在linxu环境下,是一种非常简单的压缩算法。在Java实现API中,它仅仅包含两个实现类:GZIPInputStream和GZIPOutputStream。 GZIPOutputStream类用于压缩,GZIPInputStream类用于解压缩。1、压缩,封装方法如下: 1...原创 2018-11-04 20:33:25 · 116 阅读 · 0 评论 -
46、压缩与解压(1)
学习目标:1、掌握压缩和解压的相关类的操作学习过程:一、压缩简介在平时使用windows操作系统时,压缩与解压都是经常性操作,不同的压缩算法对应不同的压缩格式,一般现在经常使用的压缩格式有.rar,.zip,.7z的压缩格式。在java系统中,API提供了压缩与解压的工具类可以轻松完成压缩解压的任务,由于更像是工具类,因此这两组不同压缩格式的类被放在util工具集包中,它们看上...原创 2018-11-02 14:45:56 · 123 阅读 · 0 评论 -
45、Serializable序列化
学习目标:1、了解Serializable序列化的概念2、了解Serializable序列化的使用场景3、了解Serializable序列化流的操作学习过程:一、serializable序列化序列化(serialization)指将一个java Object实例写入一个字节流的过程,序列化对象可以将其状态存储成文件,这一过程又被称作对象的持久化,可以将序列化后的对象进行网络...原创 2018-11-02 14:45:28 · 106 阅读 · 0 评论 -
44、Randomaccessfile类学习
学习目标:1、了解Randomaccessfile类2、了解Randomaccessfile类的使用场景3、自学Randomaccessfile类多线程下载时的使用学习过程:一、RandomAccessFile讲解RandomAccessFile类不属于InputStream或者OutputStream分层结构的一部分,它实现了DataInput和DataOutput。Ra...原创 2018-11-02 14:44:53 · 136 阅读 · 0 评论 -
43、DataInputstream和DataOutputstream
学习目标:1、了解DataInputstream和DataOutputstream 学习过程:一、datainputstream和dataoutputstreamDataOutputStream:数据输出流允许应用程序以适当方式将基本 Java 数据类型写入输出流中。然后应用程序可以使用数据输入流将数据读入。 DataInputStream:数据输入流允许应用程序以与机器无...原创 2018-11-02 14:44:29 · 488 阅读 · 0 评论 -
42、带缓冲的流
学习目标:1、了解带缓冲的流2、掌握带缓冲的流相关类的操作学习过程:一、什么是带缓冲的流在字符流中可以使用带缓冲的字符流提高文件读写的效率,这种效率的提高是显著的而且有时是必须的。带缓冲提供一个较大的缓冲区,通过减少文件读取或写入次数以提高IO流的效率,比如相比较使用一个int的长度是4byte临时变量,使用而默认的BufferedReader缓冲区大小是4k byte,减少读...原创 2018-11-02 14:44:02 · 206 阅读 · 0 评论 -
41、字符流
学习目标:1、了解字符流2、掌握使用字符流读取和写入文件3、了解字符流和字节流的区别和使用场景学习过程:一、字符流有了上一节学习字节流的经验,那么字符流就比较简单了。文件在计算机中的作用是存储信息,要读写这些信息需要使用流的相关类型。大量的文字信息都是以字符的方式存在的,Java中的字符是Unicode编码,每个字符是双字节的。字符流从Reader和Writer派生出的一系...原创 2018-11-02 14:43:38 · 146 阅读 · 0 评论 -
40、字节流
学习目标:1、理解流的概念2、掌握文件的读取和写入3、掌握字节流类学习过程:一、理解流的概念流是对计算机系统中的输入输出进行的抽象。流是指一连串流动的字符,是以先进先出方式发送信息的通道,。在java中流的实现建立在四个抽象类的基础上:InputStream、OutputStream、Reader和Writer。其中InputStream/OutputStream 设计成输...原创 2018-11-02 14:43:11 · 183 阅读 · 0 评论 -
39、File文件的基本操作
学习目标:1、了解文件的操作类File2、掌握使用File类操作文件学习过程:一、File类简介File类不但代表文件和目录的双重含义,还表示一个刚新建于内存中尚未同步去硬盘的文件或目录。File类的作用描述了文件本身的属性,包括用来获取或处理与磁盘文件相关的信息,例如大小、权限、生成时间、最后修改时间和目录路径等等。此外,浏览子目录层次结构也是经常做的操作。尽管File类的实...原创 2018-11-02 14:42:44 · 248 阅读 · 0 评论 -
38、properties属性文件
学习目标:1、了解属性文件2、掌握属性文件的读取和写入3、了解属性文件的应用场景学习过程:一、properties属性文件属性文件Properties是hashTable的子类,一种特殊的java资源文件,常被用于记录一些程序运行时的配置数据,这种文件可以“享有”和class一样的待遇,在java的classpath中被加载,要获得当前系统环境值时,可以使用System.g...原创 2018-11-02 14:42:16 · 136 阅读 · 0 评论 -
36、Map接口和HashMap实现
学习目标:1、了解Map结构的数据特点2、了解Map接口和HashMap实现类的常见用法学习过程:一、Map接口 Map意为映射,java.util.Map接口规定了一组通过键值对(key-value)方式组织的集合,键必须是唯一的,Map的数据也是不能保证顺序的,也就是Map中数据的顺序与放置数据的先后顺序无关。,其基本的操作是get 和 put,即放置数据和取数据,我们一般...原创 2018-11-02 14:41:33 · 914 阅读 · 0 评论 -
37、TreeSet和TreeMap介绍
学习目标:1、了解TreeSet类的使用2、自学TreeMap类的使用学习过程:一、TreeSet介绍TreeSet的数据结构可以理解为是二叉树结构,我们可以使用TreeSet实现排序功能,TreeSet通过定义一个比较器Comparator来完成集合中对象的排序。二、TreeSet代码示例我们先定义一个Student类。代码如下: 1 2 3...原创 2018-11-01 21:59:51 · 937 阅读 · 0 评论 -
35、Set接口,HashSet实现
学习目标:1、了解Set集合类的特点2、掌握HashSet类的使用学习过程:一、Set接口介绍Set与离散数学中的一个“集合”概念类似,集合的特点是无序的和不允许有重复的数据,在java编程中的所谓重复数据是指使用Object的equals()方法进行比较返回true时的两个对象,Set中的顺序也是按照java自己的排序方式与用户放置数据的先后顺序无关,所以我们也可以理解为是“...原创 2018-11-01 21:58:36 · 215 阅读 · 0 评论 -
34、ArrayList和LinkedList
学习目标:1、了解Java的集合框架2、掌握ArrayList和LinkedList的使用3、了解ArrayList和LinkedList的区别学习过程:一、集合框架介绍集合框架有一个共有的接口Collection,集合对象就是将多个元素组成一个单元的对象,集合数据的一般操作就是用于存储、检索、删除和修改等操作。集合框架是用于表示和操纵集合的统一体系结构。java集合框...原创 2018-11-01 17:53:13 · 159 阅读 · 0 评论 -
33、Random随机数类
学习目标:1、掌握Random类的方法和原理2、熟练掌握随机数的应用学习过程:一、Random随机数类1、简介Random随机数类是一个非常简单和实用类,用于生成伪随机数,在一些游戏获得某些应用中都会大量使用到随机数,构造方法有两个,分别是:Random() 创建一个新的随机数生成器。 Random(long seed) 使用单个 long 种子创建一个新的随...原创 2018-11-01 17:52:39 · 297 阅读 · 0 评论 -
32、Calendar类
学习目标:1、掌握Calendar类的使用2、在开发中能灵活使用Date和Calendar操作日期学习过程:一、Calendar简介java.util.Calendar意为日历,跟Date类有很多类似的地方,但是也有区别的,Date类主要用于时间的表示,而Calendar侧重于时间的计算。Calendar类是一个抽象基类,需要通过工厂方法去取得当前系统日历: 1 ...原创 2018-11-01 17:52:07 · 111 阅读 · 0 评论 -
31、Date类
学习目标:1、了解JavaSE提供的基本工具类包2、掌握Date类的使用学习过程:util是utility(即:中文工具)的简写,也就是java的实用工具集包,该包提供了大量的实用工具类,常用工具如日期与时间操作、随机数、正则表达式、国际化等,而在util包中比较核心的应该是Collection类集工具,java系统提供了丰富的数据结构用于出集合的操作。一、Date类简介日...原创 2018-11-01 15:12:03 · 198 阅读 · 0 评论 -
30、自定义异常和throw、throws的使用
学习目标:1、掌握throw和throws的使用2、掌握自定义异常类学习过程:一、自定义异常类我们知道所有的异常都是Exception,所以我们需要自定义异常只需要继承那个Exception类就可以了。下面我们自定义一个异常类,代码如下: 1 2 3 4 5 6 7 8 9 10 ...原创 2018-11-01 15:11:26 · 304 阅读 · 0 评论 -
29、异常的嵌套和级联
学习目标:1、了解异常的嵌套的语法和作用2、了解级联捕获异常的意义和语法学习过程:这节我们需要探讨的问题是,如果我们需要try尝试捕获的异常不止一个,那么我们需要如何处理呢?一、分开捕获或者嵌套使用我们先看看下面这段代码: 1 2 3 4 5 6 7 8 9 10 11 12...原创 2018-11-01 15:10:58 · 257 阅读 · 0 评论 -
28、各种常见的异常
学习目标:1、了解各种常见的异常2、了解异常类之间的继承关系学习过程:一、各种常见的异常在上一节中程序如果你注意留意,程序抛出的异常是:java.lang.ArithmeticException。这个异常是在lang包中已经定义的。在lang包中还定义了一些我们非常常见的异常,如下表:上面这些异常要求都能记住,程序抛出了异常后,你要知道程序发生了是什么问题。我们可以举个...原创 2018-11-01 15:10:27 · 187 阅读 · 0 评论 -
27、异常的基本概念和处理流程
学习目标:1、了解Java异常的基本概念2、了解异常的使用场景3、掌握异常的基本语法结构学习过程:一、异常的基本概念在java中把导致程序中断运行的情况分为两种,一种就是异常,而另外一种叫做错误。所有异常的基类是Exception,错误的基类是Error。Exception是在java程序中可以编码进行控制的,具有可编程性,而Error是指Java运行时系统来显示与运行时系...原创 2018-11-01 15:09:55 · 451 阅读 · 0 评论 -
26、Math类
学习目标:1、了解Math类及其基本方法的使用2、重点了解一下随机数学习过程:Math类是一个很有用的数学帮助类,使用也非常简单,这个类比较特殊,首先他和String类一样都是用final修饰,所以不能有子类,还有就是它的构造方法是私有的,也就是我们不能通过new的方法在其它类中构造Math对象,那么我们怎样调用它的方法,原来它的所有的方法都是静态方法,也就是可以直接使用类名就可以...原创 2018-10-29 22:22:25 · 118 阅读 · 0 评论 -
25、StringBuffer和StringBuilder
学习目标:1、掌握StringBuffer的使用2、掌握StringBuilder的使用3、了解String、StringBuffer和StringBuilder的区别学习过程:一、StringBuffer的基本方法StringBuffer 用于表示可以修改的字符串1、构造方法。 1 2 3 StringBuffer...原创 2018-10-29 22:21:56 · 85 阅读 · 0 评论 -
24、String字符串
学习目标:1、了解String字符串2、掌握String对象的常用方法学习过程:一、定义String字符串String字符串和char字符不同,char使用单引号,只能表示一个字符,字符串就是一段文本。String是个类。这个类使用final修饰,所以这个类是不可以继承扩充和修改它的方法的。String类又特别常用,所以在对String对象进行初始化时,它可以不像其它对象一样,...原创 2018-10-29 22:21:02 · 148 阅读 · 0 评论