
Java学习专栏
普普通通的人,一直努力。分享学习过程。
南方的树~
成长
展开
-
Java学习总结四十五:网络编程(一)
通讯协议计算机网络中实现通信必须有一些约定即通信协议,对速率、传输代码、代码结构、传输控制步骤、出错控制等制定标准通信接口为了使两个结点之间能进行对话,必须在它们之间建立通信工具(即接口),使彼此之间能进行信息交换。接口包括两个部分:硬件装置:实现结点之间的信息传送软件装置:规定双方进行通信的约定协议网络分层由于结点之间联系很复杂,在制定协议时,把复杂成份分解成一些简单的成份,再...原创 2019-07-30 02:53:12 · 228 阅读 · 0 评论 -
Java学习总结四十四:多线程(七)
01_多线程(多线程的引入)1.什么是线程线程是程序执行的一条路径, 一个进程中可以包含多条线程多线程并发执行可以提高程序的效率, 可以同时完成多项工作2.多线程的应用场景红蜘蛛同时共享屏幕给多个电脑迅雷开启多条线程一起下载QQ同时和多个人一起视频服务器同时处理多个客户端请求02_多线程(多线程并行和并发的区别)并行就是两个任务同时运行,就是甲任务进行的同时,...原创 2019-07-29 06:12:50 · 111 阅读 · 0 评论 -
Java学习总结四十三:多线程(六)
线程协作生产者消费者模式Java能实现的几种方法wait() / notify()方法notify() :唤醒正在等待对象监视器的单个线程。notifyAll() :唤醒正在等待对象监视器的所有线程package com.jsp.pan;/** * 生产者消费者实现方式:管程法 * @author Jsp * */public class CoTest01 {...原创 2019-07-29 05:39:17 · 105 阅读 · 0 评论 -
Java学习总结四十二:多线程(五)
1111原创 2019-07-28 03:39:33 · 135 阅读 · 0 评论 -
Java学习总结四十一:多线程(四)
多线程的优点1,提高应用程序的响应。对图形化界面更有意义,可增强用户体验2,提高计算机系统CPU的利用率3,改善程序结构,将既长又复杂的进程分为多个线程,独立运行,利于理解和修改。线程的方法使用/** * */package com.jsp.state2;/** * 测试Thread中的常用方法: * 1,start():启动当前线程:调用当前线程的run() * ...原创 2019-07-27 04:12:45 · 106 阅读 · 0 评论 -
Java学习总结四十:多线程(三)
一个线程的生命周期线程是一个动态执行的过程,它也有一个从产生到死亡的过程。一个线程完整的生命周期。新建状态:使用 new 关键字和 Thread 类或其子类建立一个线程对象后,该线程对象就处于新建状态。它保持这个状态直到程序 start() 这个线程。就绪状态:当线程对象调用了start()方法之后,该线程就进入就绪状态。就绪状态的线程处于就绪队列中,要等待JVM里线程调度器的调度。...原创 2019-07-26 05:49:17 · 161 阅读 · 1 评论 -
Java学习总结三十九:多线程(二)
静态代理/** * */package com.jsp.thread;/** * 静态代理 * 公共接口: * 1,真实角色 * 2,代理角色 * @author Jsp * */public class StaticProxy { public static void main(String[] args) { new WeddingCompany(new Y...原创 2019-07-26 05:37:26 · 172 阅读 · 0 评论 -
Java学习总结三十八:多线程(一)
线程简介方法间的调用:普通方法调用,从哪里来到哪里去,闭合的一条路径多线程使用:开辟了多条路径核心概念:线程就是独立的执行路径;在程序运行时,即使没有自己创建线程,后台也会存在多个线程,如gc线程、主线程;main()称之为主线程,为系统的入口点,用于执行整个程序;在一个进程中,如果开辟了多个线程,线程的运行由调度器安排调度,调度器是与操作系统紧密相关的,先后顺序是不能人为...原创 2019-07-25 06:20:03 · 168 阅读 · 0 评论 -
Java IO流学习总结三十六:对象流、打印流
对象流一.ObjectOutputStreamObjectOutputStream可以将Java对象写入OutputStream。 public static void main(String[] args) throws Exception { ObjectOutputStream objectOutputStream = new ObjectOutputStream(new Fil...原创 2019-07-25 05:34:13 · 144 阅读 · 0 评论 -
Java IO流学习总结三十五:随堂练习三
字符缓冲流一:import java.io.BufferedWriter;import java.io.FileWriter;import java.io.IOException;/* BufferedWriter:将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入 BufferedReader:从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行...原创 2019-07-23 04:41:15 · 144 阅读 · 0 评论 -
Java IO流学习总结三十四:随堂练习二
No.1IOTest01.javaimport java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream; /** * 第一个程序:理解操作步骤 标准 * 1、创...原创 2019-07-22 03:32:04 · 200 阅读 · 0 评论 -
Java IO流学习总结三十三:IO流(总结)
qq w qwqw原创 2019-07-21 06:31:13 · 186 阅读 · 0 评论 -
Java IO流学习总结三十二:随堂练习一
FileDemo01.javaimport java.io.File; public class FileDemo01 { /** * 构建File对象 * @param args */ public static void main(String[] args) { String path ="D:/java01/IO_st...原创 2019-07-21 06:10:23 · 148 阅读 · 0 评论 -
Java IO流学习总结三十一:File
转载请标明出处:http://blog.youkuaiyun.com/zhaoyanjun6/article/details/54581478 Java File类的功能非常强大,利用java基本上可以对文件进行所有操作。首先来看File类的构造函数的源码 /** * Internal constructor for already-normalized pathname strings...转载 2019-07-21 04:57:35 · 223 阅读 · 0 评论 -
Java IO流学习总结三十:输入输出流
转载请标明出处:http://blog.youkuaiyun.com/zhaoyanjun6/article/details/54292148本文出自【赵彦军的博客】Java流类图结构:流的概念和作用流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。IO流的分类根据处...转载 2019-07-21 04:45:07 · 3016 阅读 · 1 评论 -
Java基础学习笔记二十九 Collections工具类
Collections工具类类java.util.Collectios提供了对Set、List、Map进行排序、填充、查找元素的辅助方法。1,void sort(List) // 对List容器内的元素排序,排序的规则是按照升序进行排序2,void shuffle(List) // 对List容器内的元素进行随机排列。3,void reverse(List) //对List容器内的元...原创 2019-07-19 23:42:26 · 112 阅读 · 0 评论 -
Java基础学习笔记二十八 迭代器
使用Iterator迭代器遍历容器元素(List/Set/Map)迭代器遍历Listimport java.util.*;public class Test { public static void main(String[] args){ List<String> aList = new ArrayList<String>(); for (int i=0;...原创 2019-07-19 21:55:39 · 112 阅读 · 0 评论 -
Java基础学习笔记二十七 容器(Set接口)
Set接口Set接口继承自Collection,Set接口没有新增方法,方法和Collection完全一致。Set容器特点:无序、不可重复。无序指Set中的元素没有索引,只能遍历查找;不可重复指不允许加入重复元素。Set常用的实现类有:HashSet、TreeSet等。/** * HashSet的基本用法 */import java.util.HashSet;import java...原创 2019-07-19 06:54:18 · 106 阅读 · 0 评论 -
Java基础学习笔记二十六 容器(Map接口)
Map接口Map就是用来存储"键(key)-值(value)对"的。类似python中的字典。Map类中存储的键值对通过键来标识,键对象不能重复。Map接口的实现类有HashMap、TreeMap、HashTable、Properties等。小例子开篇:import java.util.HashMap;import java.util.Map;/** *测试HashMap的使用 *...原创 2019-07-19 03:25:22 · 152 阅读 · 0 评论 -
Java基础学习笔记二十五 容器(LinkedList)
LinkedList底层用双向链表现的存储。特点:查询效率低,增删效率高,线程不安全。双向链也叫双链表,是链表的一种,它的每个数据节点中都有两个指针,分别指向前一个节点和后一个节点。所以,双向链表中的任意一个节点开始,都可以很方便地找到所有节点。每个节点都应该有3部分内容:class Node { Node previous; //前一个节点 Object element;//本节...原创 2019-07-19 00:45:06 · 111 阅读 · 0 评论 -
Java基础学习笔记二十四 容器(ArrayList)
容器在Java当中,如果有一个类专门用来存放其它类的对象,这个类就叫做容器,或者就叫做集合,集合就是将若干性质相同或相近的类对象组合在一起而形成的一个整体泛型(Generics)可以帮助我们建立类型安全的集合。在使用了泛型的集合中,遍历时不需要进行强制类型转换。泛型的本质就是"数据类型的参数化"。可以把泛型理解为数据类型的一个占位符(形式参数),告诉编译器,在调用泛型时必须传入实际类型。...原创 2019-07-18 06:17:37 · 181 阅读 · 0 评论 -
Java基础学习笔记二十三 异常机制
异常机制异常(Exception)的概念异常指程序运行过程中出现的非正常现象,例如用户输入错误、除数为零、需要处理的文件不存在、数组下标越界等。异常的分析示例:public class Test1 { public static void main(String[] args){ int i = 1/0; //除数为0 System.out.println(i); }}...原创 2019-07-18 03:50:41 · 115 阅读 · 0 评论 -
Java基础学习笔记二十二 枚举
枚举语法:enum 枚举名 { 枚举体(常量列表)}创建枚举类型enum Season { SPRING,SUMMER,AUTUMN,WINDER}所有的枚举类型隐性地继承自java.lang.Enum。枚举实质上还是类。而每个被枚举的成员实质就是一个枚举类型的实例,他们默认都是public static final修饰的。枚举的使用import java.util.Ra...原创 2019-07-18 02:14:32 · 113 阅读 · 0 评论 -
Java基础学习笔记二十一 Math、Random和File类
Math类和Random类Math类概述类包含用于执行基本数学运算的方法Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。Math所有类都是静态的。可以直接类名。调用。成员方法public static int abs(int a) //取绝对值public static ...原创 2019-07-18 01:33:54 · 178 阅读 · 0 评论 -
Java基础学习笔记二十 时间处理相关类
时间处理相关类Date类 Date 表示特定的瞬间,精确到毫秒。继续查阅Date类的描述,发现Date拥有多个构造函数,只是部分已经过时,但是其中有未过时的构造函数可以把毫秒值转成日期对象。//创建日期对象,把当前的毫秒值转成日期对象Date date = new Date(1607616000000L);System.out.println(date);//打印结果:Fri Dec...原创 2019-07-17 06:11:52 · 319 阅读 · 0 评论 -
Java基础学习笔记十九 StringBuffer和StringBuilder
StringBuffer和StringBuilderStringBuffer和StringBuilder非常类似,均代表可变的字符序列。这两个类都是抽象类AbstractStringBuilder的子类,方法几乎一模一样。AbstractStringBuilder部分源码:abstract class AbstractStringBuilder implements Appendable,C...原创 2019-07-17 05:55:03 · 130 阅读 · 0 评论 -
Java基础学习笔记十八 包装类
包装类初识包装类public class WrapperClassTest { public static void main(String[] args) { Integer i = new Integer(10); Integer j = new Integer(50); }}内存分析图:包装类的用途1,作为和基本数据类型对应的类型存在,方便涉及到对象的操作,如...原创 2019-07-17 05:00:01 · 144 阅读 · 0 评论 -
Java基础学习笔记十七 冒泡排序和二分法查找
冒泡排序冒泡排序算法的运作如下:1,比较相邻的元素。如果第一个比第二个大,就交换他们两个2,对每一对相邻的元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数3,针对所有元素重复以上步骤,除了最后一个4,持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较示例:冒泡排序的基础算法和优化import java.util.Arrays;...原创 2019-07-17 02:40:11 · 447 阅读 · 0 评论 -
Java基础学习笔记十六 String
String1,String类又称作不可变字符串序列。2,String位于java.lang包中,Java程序默认导入java.lang包中所有的类3,Java字符串就是Unicode字符序列,例如字符串“Java”就是4个Unicode字符 ‘J’、‘a’、‘v’、‘a’ 组成的。4,Java没有内置的字符串类型,而是在标准Java类库中提供了一个预定义的类String,每个用双引号括...原创 2019-07-16 21:30:45 · 99 阅读 · 0 评论 -
Java基础学习笔记十五 内部类
在Java中内部类主要分为成员内部类(非静态内部类、静态内部类)、匿名内部类、局部内部类。成员内部类(可以使用private、default、protected、public任意进行修饰。类文件:外部类$内部类.class)a、非静态内部类(外部类里使用非静态内部类和平时使用其他类没什么不同),一,非静态内部类必须寄存在一个外部对象里。因此,如果有一个非静态内部类对象那么一定存在对应的外部...原创 2019-07-16 07:15:03 · 103 阅读 · 0 评论 -
Java基础学习笔记十四 接口详解
接口声明格式[访问修饰符] interface 接口名 [extends 父接口1,父接口2...] { 常量定义: 方法定义:}定义接口的详细说明:1,访问修饰符:只能是public或默认。2,接口名:和类名采用相同的命名机制。3,extends:接口可以多继承。4,常量:接口中的属性只能是常量,总是:public static final 修饰。不写也是。5,方法:接...原创 2019-07-15 23:15:32 · 115 阅读 · 0 评论 -
Java基础学习笔记十三 抽象类和抽象方法(补充)
抽象类抽象方法使用abstract修饰的方法,没有方法体,只有声明。定义的是一种“规范”,就是告诉子类必须要给抽象方法提供具体的实现。抽象类包含抽象方法的类就是抽象类。示例:抽象类和抽象方法的基本用法//抽象类public abstract class Animal { //有抽象方法,类也需要声明成抽象类 abstract public void shout(); // 抽象...原创 2019-07-15 22:18:34 · 129 阅读 · 0 评论 -
Java基础学习笔记十二 数组(补充)
数组数组是相同类型数据的有序集合。数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个元素,每个元素可以通过一个索引(下标)来访问它们。数组的三个基本特点:1,长度是确定的。数组一旦被创建,它的大小就是不可以改变的。2,其元素必须是相同类型,不允许出现混合类型。3,数组类型可以是任何数据类型,包括基本类型和引用类型。数组变量属引用类型,数组也可...原创 2019-07-15 07:07:02 · 176 阅读 · 0 评论 -
Java基础学习笔记十一 多态详解和对象的转型
多态(polymorphism)多态性是OOP中的一个重要特性,主要是用来实现动态联编的,换句话说,就是程序的最终状态只有在执行过程中才被决定而非在编译期间就决定了。这对于大型系统来说能提高系统的灵活性和扩展性。引用变量的两种类型:编译时类型(模糊一点,一般是一个父类)由声明时的类型决定。运行时类型(运行时,具体是哪个子类就是哪个子类)由实际对应的对象类型决定。多态的...原创 2019-07-15 05:32:12 · 131 阅读 · 0 评论 -
Java基础学习笔记十 封装的实现
详解封装Java是使用"访问控制符"来控制哪些细节需要封装,哪些细节需要暴露的。Java中4种“访问控制符”。1,private:表示私有,只有自己类能访问2,default:表示没有修饰符修饰,只有同一个包的类能访问3,protected:表示可以被同一个包的类以及其他包中的子类访问4,public:表示可以被该项目的所有包中的所有类访问它们说明了面向对象的封装性,所以我们要利用...原创 2019-07-15 02:48:07 · 120 阅读 · 0 评论 -
Java基础学习笔记九 equals和toString方法
equals方法Object类中定义有:public boolean equals(Object obj)方法,提供定义"对象内容相等"的逻辑Object的equals方法默认就是比较两个对象的hashcode,是同一个对象的引用时返回true否则返回false,但是,我们可以根据我们自己的要求重写equals方法。示例:equals方法测试和自定义类重写equals方法public cl...原创 2019-07-15 01:15:04 · 194 阅读 · 0 评论 -
Java基础学习笔记八 变量分类、流程控制语句
变量局部变量(local variable)定义:方法或语句块内部定义的变量。生命周期是从声明位置开始到方法或语句块执行完毕为止。局部变量在使用前必须先声明、初始化(赋初值)再使用示例:public void test() { int i; int j = i + 5;//编译出错,变量i还未被初始化}public void test(){ int i; i = 10; ...原创 2019-07-13 04:33:48 · 151 阅读 · 0 评论 -
Java基础学习笔记七 接口和多态
接口接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”。接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成。这样将功能的定义与实现分离,优化了程序设计。请记住:一切事物均有功能,即一切事物均有接口。接口的定义与定义类的class不同,接口定义时需要使用interface关键字。定义接口所在的仍为.java文件,虽然声明时使...原创 2019-07-12 22:48:51 · 156 阅读 · 0 评论 -
Java基础学习笔记六 继承和抽象类
继承继承的概念在现实生活中,继承一般指的是子女继承父辈的财产。在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系。例如公司中的研发部员工和维护部员工都属于员工,程序中便可以描述为研发部员工和维护部员工继承自员工,同理,JavaEE工程师和Android工程师继承自研发部员工,而维网络维护工程师和硬件维护工程师继承自维护部员工。这些员工之间会形成一个继承体系,...原创 2019-07-12 04:09:08 · 161 阅读 · 0 评论 -
Java基础学习笔记五 类和ArrayList
引用数据类型引用数据类型分类,提到引用数据类型(类),其实我们对它并不陌生,如使用过的Scanner类、Random类。我们可以把类的类型为两种:第一种,Java为我们提供好的类,如Scanner类,Random类等,这些已存在的类中包含了很多的方法与属性,可供我们使用。第二种,我们自己创建的类,按照类的定义标准,可以在类中包含多个方法与属性,来供我们使用。这里我们主要介绍第二种情况...原创 2019-07-12 03:41:48 · 126 阅读 · 0 评论