Java
文章平均质量分 58
记录自己学习Java整个过程
zoweiccc
心态
展开
-
Java——装饰者设计模式
结合了一些百度百科的概念然后使用代码进行理解~装饰者模式:指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。使用场景:需要扩展一个类的功能,或给一个类添加附加职责。 需要动态的给一个对象添加功能,这些功能可以再动态的撤销。 需要增加由一些基本功能的排列组合而产生的非常大量的功能,从而使继承关系变...原创 2018-11-25 21:43:48 · 257 阅读 · 0 评论 -
Java——模板设计模式和枚举类的实现
尝试以MarkdownPad2方式写博客,感觉十分有条理,第一次使用花的时间较长,但是熟能生巧,后面会越用越熟练,更快吧~1. 模板设计模式(1).模板方法模式就是定义一个算法的骨架,而将具体的算法延迟到子类来实现(2)优点:使用模板方法模式,在定义算法骨架的同时,可以很灵活的实现具体的算法,满足用户灵活多变的需求(3)缺点:如果算法骨架有修改的话,则需要修改抽象类 ...原创 2018-10-17 17:43:31 · 574 阅读 · 0 评论 -
Java——反射的常见方法实现
1.类的加载概述:当程序要使用某个类时,如果该类还没有被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化 (1)加载:就是指将class文件读入内存,并为之创建一个class对象。任何类被使用时系统都会建立一个class对象 (2)连接:分为验证(是否有正确的内部结构,并和其他类协调一致),准备(负责为类的静态成员分配内存,并设置默认初始...原创 2018-10-16 19:44:51 · 612 阅读 · 0 评论 -
Java——TCP的简单传输过程
TCP协议:面向连接(三次握手),数据安全,速度比UDP略低,分为客户端和服务端 客户端先向服务端发起请求,服务端响应请求,传输数据 客户端:创建Socket连接服务端(指定ip地址,端口号)通过ip地址找对应得服务器 调用Socket的getInputStream()和getOutputStream()方法获取...原创 2018-10-13 18:57:58 · 675 阅读 · 1 评论 -
Java——UDP的简单传输
网络编程:用来实现网络互连的不同计算机上运行的程序可以进行数据交换 1.UDP传输,运行时,先启动接收方(即先运行接收方),后运行发送方 (1)发送Send 1)创建DatagramSocket,随机端口号 2)创建DatagramPacket,指定数据,长度,地址,端口 3)使用Datagr...原创 2018-10-13 15:23:08 · 348 阅读 · 0 评论 -
Java——多线程基本使用(四) 线程组和线程池的使用,工厂设计模式的使用
1.线程组的概述和使用Java中使用ThreadGroup来表示线程组,它可以对一批线程进行分类管理,Java允许程序直接对线程组进行控制。 (1)默认情况下,所有线程都属于线程组 public final ThreadGroup getThreadGroup() //通过线程对象获取它所属于的组 ...原创 2018-10-12 13:37:09 · 470 阅读 · 0 评论 -
Java——多线程基本使用(三) 饿汉式和懒汉式的单例设计模式,多线程之间的通信
这一则博客主要写的是单例设计模式,与实现多线程之间的通信等等~1.单例设计模式:保证类在内存中只有一个对象2.保证类在内存中只有一个对象 (1)控制类的创建,不让其他类来创建本类的对象。用private私有构建函数 (2)在本类中定义一个本类的对象。 (3)提供公共的访问形式3.单例写法 ...原创 2018-10-11 20:58:09 · 251 阅读 · 0 评论 -
Java——多线程基本使用(二)
在学习多线程时,如果联系操作系统来学习,会觉得很好理解。因为学习操作系统时候,有同步,互斥,锁的一些概念~给个链接到上一篇~https://blog.csdn.net/zoweiccc/article/details/830021768.加入线程 (1)join,当前线程暂停,等待指定的线程执行结束后,当前线程再继续 (2)join(int),可以等待指定的毫秒...原创 2018-10-10 21:12:06 · 190 阅读 · 0 评论 -
Java——多线程基本使用(一)
1.线程:线程是程序执行的一条路径,一个进程中可以包含多条线程 多线程:多线程并发执行可以提高程序的效率,可以同时完成多项工作 多线程的并发和并行的区别: (1)并行就是两个任务同时运行,如任务A进行时,B任务也在进行.(需要多核CPU) (2)并发是指两个任务都请求运行,而处理器只能接受一个任务,就把这两个任务安排轮流进行,但是由于时间间隔较短,能 让人感...原创 2018-10-10 19:36:21 · 186 阅读 · 0 评论 -
Java——properties类的常见方法及其使用
properties的概述和作为map的使用 properties(常用来做配置文件):是一个双列集合,properties类表示了一个持久的属性集,可保存在流中或从流中加载,属性列表中每个键及其对应值都是一个字符串,是Hashtable的子类 (1)作为Map集合的使用 (2)其他功能的使用 public Object setPr...原创 2018-10-09 19:39:44 · 1245 阅读 · 0 评论 -
Java——IO流(四)一些不常见的IO流(内存输出流,随机访问流,序列流等等)
1.序列流:可以把多个字节输入流整合成一个,从序列流中读取数据时,将从被整合的第一个流开始读,读完一个之后继续第二个 SequenceInputStream2.内存输出流:可以向内存中写数据,把内存当作一个缓冲区,写出之后可以一次性获取所有数据 使用方式:(1)创建对象 new ByteArrayOutputStream() (...原创 2018-10-09 19:00:16 · 201 阅读 · 0 评论 -
Java——IO流(三)字符流的读写与拷贝、装饰设计模式
1.字符流的学习(FileReader与FileWriter):字符流是可以直接读写字符的IO流(只读或者只写时使用字符流) (1)字符流读取字符就要先读取到字节数据,然后转化为字符;如果要写出字符,需要把字符转化为字节再写出 (2)读取的时候是按照字符的大小读取的,不会出现半个中文;写出的时候,直接将字符串写出,没有转换动作 (3)字符流不可...原创 2018-10-08 21:24:17 · 164 阅读 · 0 评论 -
Java——IO流(二)使用字节流来实现图片加密、拷贝文件的功能
1.实现图片加密功能2.拷贝文件(在控制台录入文件的路径,将文件拷贝到当前项目下) 3.实现录入数据拷贝到文件的功能(将键盘录入的数据拷贝到当前项目下的te.txt文件中,录入数据遇到quit时退出) package pra_16;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;...原创 2018-10-06 20:40:48 · 1144 阅读 · 0 评论 -
Java——IO流(一)字节流的读写
1.IO流的学习:IO流是用来处理设备之间的数据传输 字节流:字节流可以操作任何数据,因为在计算机中任何数据都是以字节的形式存储的 字节流的抽象父类:InputStream,OutputStream 字符流:字符流只能操作纯字符数据,比较方便 字符流的抽象父类:Reader,Writer 2.I...原创 2018-10-06 20:37:52 · 248 阅读 · 0 评论 -
Java——File类常见的方法
File类:是文件和目录路径名的抽象表示形式 1.构造方法: File(String pathname):根据一个路径得到File对象 File(String parent,String child):根据一个目录和一个子文件/目录得到File对象 File(File parent,String child):根据一...原创 2018-10-05 16:25:38 · 250 阅读 · 0 评论 -
Java——使用try...catch与throws处理程序运行的异常
1.异常:异常就是Java程序正在运行过程中出现的错误 2. 两种处理异常的方式:try catch,throws 3.Throwable子类有Error,Exception; Exception子类有RuntimeException(运行时异常)等等... 4. try catch finally 处理异常 try用来检测异常,c...原创 2018-09-27 21:13:54 · 2783 阅读 · 0 评论 -
Java——Map集合里的HashMap,LinkedHashMap,TreeMap类的学习与实现案例
通过前面学习Set集合,在理解Map集合时也变得十分容易。Map集合:是一个双列集合 Map<K,V>,k代表的是键,v代表的是值,是一个接口,方法都是抽象的,不能被实例化,将键映射到值的对象。一个映射不能包含重复键,每个键最多只能映射到一个值 Set底层依赖的是Map,Map集合不能直接迭代 Map集合的功能: 1.1.添加功能...原创 2018-09-26 18:27:28 · 325 阅读 · 0 评论 -
Java——TreeSet类通过使用比较器排序,实现给字符串排序且不删除重复字符
在学TreeSet类中,因为TreeSet类底层使二叉树,所以使用其排序时,得使用恰当,否则运行时会发生错误,还有的就是得学会用比较器排序。需要实现Comparable接口,并重写comparaTo方法,写出要排序的规则,比如说按字符串长度排序,还是按字母表的顺序排序,都得自己在里面实现。以下是两个小程序,分别实现的功能有:1.在一个集合中存储了无序并且重复的字符串,将其排序且不删除重复。...原创 2018-09-23 16:29:41 · 575 阅读 · 0 评论 -
Java——Set集合(接口)(二)___TreeSet用法
Set(接口)集合: TreeSet类(底层是二叉树),能保证有序,用来对元素进行排序,能保证元素的唯一 使用方式: 1.自然顺序:TreeSet类的add()方法中会把存入的对象提升为Comparable类型 调用对象的compareTo()方法和集合中的对象比较 根据c...原创 2018-09-23 15:06:58 · 200 阅读 · 0 评论 -
Java——HashSet与LinkedHashSet实现删除重复字符
1.从键盘读取一行字符串,去掉重复字符,并打印出来2.将集合中的重复元素去掉代码如下~package pra_12;import java.util.ArrayList;import java.util.HashSet;import java.util.LinkedHashSet;import java.util.List;import java.util.Scanner;...原创 2018-09-22 20:12:17 · 685 阅读 · 0 评论 -
Java——Set集合(接口)(一)___HashSet类与LinkedHashSet类
Set(接口)集合:Set集合底下分别有HashSet和TreeSet。 HashSet类:无索引,不重复,无序;此类实现Set接口,由哈希表支持。它不保证set的迭代顺序,特别是不保证该顺序恒久不变,允许使用null元素 HashSet存储自定义对象并遍历 由例子可以看出,添加元素时地址不一样哈希值也不一样,所以我们...原创 2018-09-22 15:02:46 · 274 阅读 · 0 评论 -
Java——底层是迭代器实现的for循环,可变参数的方法,asList()方法,ArrayList双重嵌套,集合转数组
先列出这次Java学习的内容,下面写的一些方法助于理解~1.for循环(底层是迭代器实现)另类写法的应用:简化数组和Collection集合的遍历 for(元素数据类型 变量:数组或者Collection集合){ 使用变量即可,该变量就是元素 } 2.三种循环的操作与区别 3.可变参数:定...原创 2018-09-19 20:47:08 · 663 阅读 · 0 评论 -
Java——泛型相关知识的学习(泛型类,泛型方法,泛型接口,泛型的通配符)
泛型: 好处:(1)提高安全性,将运行期间的错误转换到编译期.(2)省去强转的麻烦. 使用:<>中放的必须是引用数据类型 注意:前后的泛型必须一致,或者后面的泛型可以省略不写,泛型最好不要定义成Object,没有意义 泛型类:把泛型定义在类上 泛型方法:方法泛型需要于类的泛型一致 ...原创 2018-09-19 18:25:48 · 207 阅读 · 0 评论 -
Java——用ArrayList删掉集合中字符串或者自定义对象元素的重复值,LinkList的特有功能
在这两个程序中,都采用的是建立一个新集合,利用hasNext()方法,next()方法和contains方法来实现判断是否重复,如果重复则剔除,不重复则写入新集合,最后返回的仍是新的集合 注:但是需要注意的是,在实现删除集合中自定义对象元素的重复值时,因为ArrayList的contains方法判断是否包含,底层依赖的是equals方法,该方法是通过看地址是否相同来判断,在...原创 2018-09-17 21:47:55 · 661 阅读 · 0 评论 -
Java——集合框架,迭代器遍历
集合框架的学习: 集合类能存储任意对象,长度是可以改变的,随着元素的增加而增加,随着元素的减少而减少 集合只能存储引用数据类型(对象),集合中也可以存储数据类型,但是存储时自动装箱成为对象 元素个数不固定的用集合 collections的常见方法: boolean add(E ...原创 2018-09-17 14:57:47 · 181 阅读 · 2 评论 -
Java——Random类,BigInteger类,BigDecimal类,Date类,SimpleDateFormat类等一些常用类的学习
紧接着正则表达式的学习,可以前往这里回顾一下。https://blog.csdn.net/zoweiccc/article/details/78089467对于一些常见类的学习,对他们构造方法和一些常用的方法进行学习。从而使在开发的过程,效率更高。package pra_08;import java.math.BigDecimal;import java.math.BigIntege...原创 2018-09-13 20:03:11 · 240 阅读 · 0 评论 -
Java——实现冒泡排序,选择排序,快速排序和二分查找
在学习C语言时,对排序算法和二分查找有一定的理解并进行了实现。不过打算用Java重新实现一下冒泡排序(Bubble Sort),选择排序(Selection Sort),快速排序(Quick Sort)和二分查找(binary_search)。package pra_07;public class J_14 { public static void main(String[] arg...原创 2018-09-12 21:16:41 · 690 阅读 · 0 评论 -
Java——Integer类的方法与实现,String和int的相互转换
基本类型和包装类的对应 以下的封装类可以用于基本数据类型与字符串的转换 byte Byte short Short int Integer long Long float ...原创 2018-09-12 20:46:50 · 407 阅读 · 0 评论 -
Java——StringBuffer类的一些常用方法与例子
StringBuffer:是一个类似于String的字符串的缓冲区,但不能修改,不过,可以通过调用某些方法改变序列的长度和内容 StringBuffer与String的区别: String是一个不可变的字符序列 StringBuffer是一个可变的字符序列 构造方法: public StringBuffer(); ...原创 2018-09-12 15:44:04 · 2876 阅读 · 0 评论 -
Java——Scanner类与String类的常用方法应用
Scanner的概述和方法 final修饰,不能被继承 System.in 标准的键盘录入 hasNextInt() 判断键盘录入是否是int型整数,如果是,则返回true,否则为false hasNextXxx 用来判断下一个判断是否是Xxx型 next...原创 2018-09-10 18:51:39 · 1271 阅读 · 0 评论 -
Java——Object类的一些常用方法
Java API,即应用程序接口,就是Java提供给我们使用的类,这些类将底层的实现封装了起来 Object类,是类层次结构的根类,是所有类直接或者间接的继承自改类 hashCode()方法,返回该对象的哈希码值,学集合时使用 getClass()方法,获取对象的真实类的全名称,在学反射时使用 toString()方法,返回该对象的字...原创 2018-09-09 21:30:21 · 338 阅读 · 0 评论 -
Java内部类与匿名内部类的使用
内部类:在类中定义类就称作内部类 内部类可以直接访问外部类的成员,包括私有 外部类要访问内部类的成员,必须创建对象 外部类名字.内部类名 对象名=外部类对象.内部类对象 匿名内部类:实际上就是内部类的简化写法,前提是存在一个类或者接口,这里的类可以是具体类也可以是抽象类 new 类名或者接口名(){ ...原创 2018-09-08 14:09:14 · 191 阅读 · 0 评论 -
Java面向对象——多态,抽象类,接口与关键字abstract的学习
面向对象特征之一:多态,即事物存在的多种形态 多态的前提:要有继承关系,要有方法重写,要有父类引用指向子类对象 多态中的成员访问特点:成员变量编译时看左边,运行看左边 成员方法编译看左边,运行看右边 静态方法编译看左边,运行看左边 多态可提高代码的维护性和扩展性,可以当作形式参数,可...原创 2018-09-07 20:45:28 · 157 阅读 · 0 评论 -
Java面向对象——继承,this,super和final关键字的学习
Java 面向对象三大特征之一,继承让类与类之间产生关系,出现子与父类关系,提高了代码的复用性、维护性,是多态的前提Java中只支持单继承,不支持多继承,支持的是多层继承继承的注意事项: 子类只能继承父类所有非私有的成员(成员方法和成员变量),私有的private继承不了 字类不能继承父类的构造方法,但是可以通过super关键字去访问父类构造方法 ...原创 2018-09-06 16:08:51 · 160 阅读 · 0 评论 -
jdk1.7与jdk1.8共存,相互切换
这是一篇比较简单的博文,大牛请绕道啦~如果有错误,希望指出,一起学习~由于当初配置jdk时,没有充分考虑jdk的版本与软件是否能正常使用,所以配置jdk1.8的环境变量后,就在MyEclipse用起来了,在初步使用MyEclipse的过程中没有发现什么不妥。但在最后学习一些其他类的时候,发现调用个别的方法时会发现错误,所以就开始了jdk降级,并在MyEclipse成功运行。1.首先,先...原创 2018-09-14 10:43:40 · 18642 阅读 · 4 评论 -
Java构造方法与static关键字的学习
构造方法:给对象的数据属性进行初始化 构造方法与类名相同,没有返回值类型,连void都没有,没有具体的返回值return;构造方法的重载:方法名相同,与返回值类型无关,只看参数列表 如果没由给出构造方法,则系统将自动提供一个无参构造方法 如果给出了构造方法,系统将不再提供默认的无参构造方法 构造方法不能用对象调用,在一创建...原创 2018-08-26 20:15:35 · 146 阅读 · 0 评论 -
java_实现测试多组数据
package lanqiao;/** * * @author Cccccc */import java.util.*;import java.io.*;import java.math.*;public class Lanqiao { /** * @param args the command line arguments */ pu...原创 2018-03-12 18:56:53 · 4263 阅读 · 2 评论 -
Java面向对象的简单操作
由于当初学Java时,没有对一些知识进行整理,导致每次遇到一些小问题都需要重新去找解决方案,就很头疼。都说好记性不如烂笔头,那就把当初学习Java的一些实例渐渐地放出来吧,为了以后遇到一些没能记住的小知识点能快速查阅~面向对象的学习,面向对象有三大特征:封装、多态、继承。 成员变量:用来形容事物的属性,在类中方法外,成员变量属于对象,随着对象的创建而存在,随着对象的消失而消失,有默认初始化值 ...原创 2018-07-07 16:32:38 · 322 阅读 · 0 评论