Java从入门到精通
文章平均质量分 59
love_Aym
这个作者很懒,什么都没留下…
展开
-
【java总结篇】理解java的三大特性之多态
转载:https://www.cnblogs.com/chenssy/p/3372798.html面向对象编程有三大特性:封装、继承、多态。 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据。对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法。 继承是为了重用父类代码。两个类若存在IS-A的关系就可以使用继承。,同时继承也为实现...转载 2018-06-06 17:12:43 · 248 阅读 · 0 评论 -
【Java】简单工厂模式、工厂模式、适配器模式
一、简单工厂模式1、 又叫静态工厂方法模式,它定义一个具体的工厂类负责创建一些类的实例2、优点: 客户端不需要在负责对象的创建,从而明确了各个类的职责3、缺点:这个静态工厂类负责所有对象的创建,如果有新的对象增加,或者某些对象的创建方式不同,就需要不断的修改工厂类,不利于后期的维护4、案例演示动物抽象类:public abstract Animal { public abstract void e...原创 2018-04-17 21:41:38 · 1094 阅读 · 1 评论 -
【Java】【多线程】线程池简述
一、线程池概述程序启动一个新线程成本是比较高的,因为它涉及到要与操作系统进行交互。而使用线程池可以很好的提高性能,尤其是当程序中要创建大量生存期很短的线程时,更应该考虑使用线程池。线程池里的每一个线程代码结束后,并不会死亡,而是再次回到线程池中成为空闲状态,等待下一个对象来使用。在JDK5之前,我们必须手动实现自己的线程池,从JDK5开始,Java内置支持线程池。import java.util....原创 2018-04-17 17:13:31 · 196 阅读 · 0 评论 -
【Java】【多线程】线程的生命周期
转载:https://blog.csdn.net/miss_dongangel/article/details/51195337非常全面1、新建状态 用继承Thread类或实现Runable接口或其他方法建立一个线程对象后,该线程对象就处于新生状态。处于新生状态的线程有自己的内存空间,通过调用start方法进入就绪状态(runnable)。 注意:不能对已经启动的线程再次调用...原创 2018-04-17 16:48:18 · 247 阅读 · 0 评论 -
【Java】【多线程】Synchronized 和 ReentrantLock的联系与区别
转载:https://blog.csdn.net/u011202334/article/details/73188404 1、synchronized的局限性 synchronized是java内置的关键字,它提供了一种独占的加锁方式。synchronized的获取和释放锁由JVM实现,用户不需要显示的释放锁,非常方便。然而synchronized也有一定的局限性,例如:当线程尝试获取锁的时...原创 2018-04-17 16:21:09 · 234 阅读 · 0 评论 -
【Java】sleep和wait区别总结
来源:https://blog.csdn.net/zlfprogram/article/details/77257373一、来源类: sleep是Thread类的静态方法; wait是Object的方法,可以对任意一个对象调用wait方法二、使用范围: sleep可以在任何地方使用,必须捕获异常; wait只能在同步控制方法或者同步控制块里面使用,不需要捕获异常三、锁: sleep不释放锁,不出让...原创 2018-04-17 13:06:17 · 363 阅读 · 0 评论 -
【Java】【多线程】两个线程间的通信、wait、notify、notifyAll
等待唤醒机制:wait()、notify()1、什么时候需要通信多个线程并发执行时, 在默认情况下CPU是随机切换线程的如果我们希望他们有规律的执行, 就可以使用通信, 例如每个线程执行一次打印,轮流执行2、怎么通信如果希望线程等待, 就调用wait()如果希望唤醒等待的线程, 就调用notify();这两个方法必须在同步代码中执行, 并且使用同步锁对象来调用,thispublic class D...原创 2018-04-17 11:40:47 · 450 阅读 · 0 评论 -
【java】单例设计模式——饿汉式和懒汉式、Runtime、Timer
单例设计模式:保证类在内存中只有一个对象一、饿汉式:1、私有构造方法:外界就不能创建对象2、创建本类对象3、对外提供公共的访问方法class Singleton { //1,私有构造方法,其他类不能访问该构造方法了 private Singleton(){} //2,创建本类对象 private static Singleton s = new Singleton(); //3,对外提供...原创 2018-04-17 10:24:49 · 263 阅读 · 0 评论 -
【Java】【多线程】同步方法和同步代码块、死锁
转载:https://blog.csdn.net/u010002184/article/details/72566874?locationNum=11&fps=1一、java的内置锁 每个java对象都可以用做一个实现同步的锁,这些锁成为内置锁。线程进入同步代码块或方法的时候会自动获得该锁,在退出同步代码块或方法时会释放该锁。 获得内置锁的唯一途径就是进入这个锁的保护的...原创 2018-04-16 21:19:37 · 624 阅读 · 0 评论 -
【java】I/O流
参考:https://blog.csdn.net/qq_32451699/article/details/52230963 ——基本理解进阶理解:FilterInputStream 与 装饰者模式:https://blog.csdn.net/zhao123h/article/details/52826306FilterInputStream 与 装饰者模式:https://blog.csdn.ne...原创 2018-04-11 13:07:17 · 174 阅读 · 0 评论 -
【Java】String类
一、String类的基本概述1、APIJava.lang //不用导包public final class StringString类代表字符串。Java程序中的所有字符串字面值(如:”abc“)都作为此类的实例实现。即”abc“就是String类的实例对象。2、重点理解字符串是常量;它的值在创建之后不能更改。解释如下:截图来源:https://www.cnblogs.com/cisum/p/...原创 2018-03-28 14:40:24 · 247 阅读 · 0 评论 -
【Java】基本数据类型包装类面试题之一
public class Demo5_Integer { public static void main(String[] args) { Integer i1 = new Integer(97); Integer i2 = new Integer(97); System.out.println(i1 == i2); //false,两个对象 System.out.prin...原创 2018-04-03 13:24:16 · 468 阅读 · 0 评论 -
【java】JDK5的新特性→→自动装箱和拆箱
一、JDK5的新特性自动装箱:把基本类型转换为包装类类型自动拆箱:把包装类类型转换为基本类型二、案例演示public class JDK5 { public static void main(String[] args) {// int x = 100;// Integer i1 = new Integer(x); //将基本数据类型包装成对象,装箱// // int y = i...原创 2018-04-03 13:13:49 · 178 阅读 · 0 评论 -
【java】int转换成String的四种方法
1、和""进行拼接2、public static String valueOf(int i)3、int --Integer -- String(Integer类的toString方法())4、publicstatic String toString(int i)(Integer类的静态方法)private static void demo1() { //int ----> String ...原创 2018-04-03 13:02:32 · 9227 阅读 · 0 评论 -
【java】Scanner类
一、概述一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器java.util //导包public final class Scanner //不能去继承二、常用写法Scanner sc = new Scanner(System.in); //键盘录入,System.in是一个输入流int i = sc.nextInt(); //键盘录入整数存储在i中hasnextInt...原创 2018-03-28 11:11:30 · 153 阅读 · 0 评论 -
【Java】基本类型包装类
部分转载:https://blog.csdn.net/hjf19790118/article/details/7081925https://blog.csdn.net/gfdonx/article/details/48787187http://www.cnblogs.com/kelin1314/archive/2010/09/11/1824145.html一、为什么会有基本类型包装类Java语言是...原创 2018-04-03 11:31:16 · 326 阅读 · 0 评论 -
【java】final、finally、finallize的区别
1、final可以修饰类,不能被继承修饰方法,不能被重写修饰变量,只能赋值一次2、finally是try语句中的一个语句体,不能单独使用个,用来释放资源3、finallize是一个方法(Object)当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收期调用此方法注意:三个没有什么联系...原创 2018-04-10 16:16:27 · 958 阅读 · 0 评论 -
【java】正则表达式
一、正则表达式是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串。其实就是一种规则。有自己特殊的应用。作用:比如注册邮箱,邮箱有用户名和密码,一般会对其限制长度,这个限制长度的事情就是正则表达式做的正则表达式也是一个字符串String类有个方法matches()方法,是专门用于检验字符串是否符合正则表达式的规则 String regex = "[1-9]\\d{4,14}";S...原创 2018-04-05 18:09:43 · 111 阅读 · 0 评论 -
【Java】File类
一、概述* File更应该叫做一个路径, 文件路径或者文件夹路径 * 路径分为绝对路径和相对路径 * 绝对路径是一个固定的路径,从盘符开始 * 相对路径相对于某个位置,在eclipse下是指当前项目下,在dos下* 查看API指的是当前路径 * 文件和目录路径名的抽象表示形式* 字符串中的需要//来表示分隔符,因为一个/为转义符二、构造方法1、File(Stringpa...原创 2018-04-12 17:26:11 · 206 阅读 · 0 评论 -
【java】【集合】数组和集合的基本概述
一、数组int[] arr = new int[5]; //基本数据类型数组Student[] arr = new Student[5]; //引用数据类型数组 注意:基本数据类型数组中存储的是具体的值,而引用数据类型数组中存储的是地址值,arr[1]相当于是一个Student类的对象引用。数组和集合存储引用数据类型,存的都是地址值二、集合1、集合的由来 * 数组长度是固定,当添加...原创 2018-04-22 11:59:34 · 234 阅读 · 0 评论 -
【java】三大框架学习入门
转载:https://blog.csdn.net/zmc001biao/article/details/68941902以下我从网上搜集了一些学习框架的地址,记录下来备用:Spring:要学习Spring框架的技术内幕,必须事先掌握一些基本的Java知识,正所谓“登高必自卑,涉远必自迩”。以下几项Java知识和Spring框架息息相关,不可不学 [1]Java反射知识–>Spring IoC...转载 2018-06-04 10:37:40 · 3400 阅读 · 0 评论 -
【java】【集合】set集合、唯一性保证、Linkset、案例
一、set概述1、通过API查看即可:方法和collection中的方法一模一样,没什么特别的方法,主要学习set的子类如何保证元素的唯一性。2、 特点:无索引:不可以通过索引值去操作集合不可以重复:add()添加时,如果发现值重复了就会返回false,表示存储不成功无序(存取不一致)3、遍历:不能使用索引值遍历,但是可以用迭代器遍历(迭代器或增强for循环) public static void...原创 2018-04-27 19:26:04 · 4221 阅读 · 0 评论 -
【Java】可变参数
1、概述:定义方法的时候不知道该定义多少个参数2、格式:修饰符 返回值类型 方法名(数据类型… 变量名){}3、注意事项:这里的变量其实是一个数组如果一个方法有可变参数,并且有多个参数,那么,可变参数肯定是最后一个。因为其他参数放在最后就会得不到参数值,都默认给了可变参数。可变参数其实是一个数组(底层是数组),前面是什么类型就是什么类型数组赋值时可以什么都不给(这是比数组参数强大的一个地方)pub...原创 2018-04-26 21:53:28 · 178 阅读 · 0 评论 -
【Java】增强for循环,三种迭代的能否删除
1、目的:简化数组和Collection集合的遍历2、格式: for(元素数据类型 变量 : 数组或者Collection集合){ 使用变量即可,该变量就是元素 }3、数组,集合存储元素用增强for遍历1)数组int[] arr = {11,22,33,44,55}; for (int i : arr) { System.out....原创 2018-04-26 21:48:31 · 3474 阅读 · 0 评论 -
【Java】 内存分配全面浅析
转载:https://blog.csdn.net/shimiso/article/details/8595564本文将由浅入深详细介绍Java内存分配的原理,以帮助新手更轻松的学习Java。这类文章网上有很多,但大多比较零碎。本文从认知过程角度出发,将带给读者一个系统的介绍。进入正题前首先要知道的是Java程序运行在JVM(Java Virtual Machine,Java虚拟机)上,可以把JVM...转载 2018-05-03 16:22:14 · 177 阅读 · 0 评论 -
【网络编程】socket详解
转载:http://www.qqread.com/java/w592395600.html Socket是网络上运行的两个程序间双向通讯的一端,它既可以接受请求,也可以发送请求,利用它可以较为方便的编写网络上数据的传递。在Java中,有专门的Socket类来处理用户的请求和响应。利用Socket类的方法,就可以实现两台计算机之间的通讯。这里就介绍一下在Java中如何利用Socket进行网络编...转载 2018-04-21 16:04:48 · 337 阅读 · 0 评论 -
【java】【泛型】泛型genetic
一、泛型泛型的由来 通过Object转型问题引入,早起Object类型可以接收任意的对象类型,但是在实际使用中,会有类型转换的问题,也就存在安全隐患,所以java提供了泛型来解决这个安全问题。 子类对象在当做参数传递时有时会被自动提升为object类型,但后面想使用该类的方法(子类特有的方法)时,就需要进行类型强制转换。有时若忘记进行转换时,编译也能通过,但是运行时会出...原创 2018-04-25 11:22:11 · 374 阅读 · 0 评论 -
【转载】【集合框架】JAVA集合框架中的常用集合及其特点、适用场景、实现原理简介
转载:https://blog.csdn.net/sdgihshdv/article/details/72566485Java提供的众多集合类由两大接口衍生而来:Collection接口和Map接口Collection接口Collection接口定义了一个包含一批对象的集合。接口的主要方法包括:size() - 集合内的对象数量add(E)/addAll(Collection) - 向集合内添加单...转载 2018-05-02 22:47:13 · 212 阅读 · 0 评论 -
【java】【Map】HashMap、Hashtable、Collections
一、基本概述键值对:一个映射不能包含重复的键,每个键最多只能映射到一个值Map接口和Collection接口的不同 Map是双列的,Collection是单列的Map的键唯一,Collection的子体系Set是唯一的Map集合的数据结构值针对键有效,跟值无关。Collection集合的数据结构是针对元素有效。二、Map集合的功能1、添加功能V put(Kkey,V value):添加元素。 ...原创 2018-05-02 19:07:19 · 261 阅读 · 0 评论 -
【java】【集合】LinkedList的特有功能,用LinkList模拟栈和队列数据结构
一、LinkList类1、概述:底层使用链表实现2、特有功能public void addFirst(E e) 及 addLast(E e)public E getFirst()及getLast()public E removeFirst()及public E removeLast()public E get(int index):因为底层是链表,链表没有下标,需要迭代遍历: get...原创 2018-04-24 22:51:34 · 369 阅读 · 0 评论 -
【java】【集合】去除ArrayList中的元素、ArrayList嵌套ArrayList
一、去除ArrayList中重复字符串元素方式 * 需求:ArrayList去除集合中字符串的重复值(字符串的内容相同) * 思路:创建新集合方式 创建新集合将重复元素去掉1、明确返回值类型,返回ArrayList2、明确参数列表ArrayList 分析:1、创建新集合2、根据传入的集合(老集合)获取迭代器3、遍历老集合4、通过新集合判断是否包含老集合中的元素,如果包含就不添加,如...原创 2018-04-24 22:43:41 · 503 阅读 · 0 评论 -
【java】【集合】List的三个子类—ArrayList、Vector、LinkedList的区别和联系
一、List的三个子类的特点 1、ArrayList: 底层数据结构是数组,查询快,增删慢。 线程不安全,效率高。2、 Vector: 底层数据结构是数组,查询快,增删慢。 线程安全,效率低。 Vector相对ArrayList查询慢(线程安全的) Vector相对LinkedList增删慢(数组结...原创 2018-04-24 21:28:53 · 264 阅读 · 0 评论 -
【java】【集合】List、ListIterator、Vector
一、List接口1、List集合的特有功能概述,其他的都继承自collection接口void add(int index,E element):在指定位置添加元素,会出现索引越界异常,0=<index<=size,其他都会出现异常Obj remove(int index):删除指定位置的元素,返回删除的元素。参数不能为元素,不会对元素进行自动装箱Obj get(int index):...原创 2018-04-24 20:02:35 · 191 阅读 · 0 评论 -
【java】【集合】TreeSet
一、概述TreeSet集合是用来对对象元素进行排序的,同样也可以保证元素的唯一,底层是二叉树实现二、TreeSet唯一性原理 1.特点 * TreeSet是用来排序的, 可以指定一个顺序, 对象存入之后会按照指定的顺序排列 2.使用方式 a.自然顺序(Comparable) * TreeSet类的add()方法中会把存入的对象提升为Comparable类型 ...原创 2018-05-02 11:28:38 · 176 阅读 · 0 评论 -
【java】【集合】迭代器Iterator
集合是用来存储元素,存储的元素需要查看,那么就需要迭代(遍历) collection接口有个iterator()方法,返回迭代器Iterator接口。 public Iterator iterator()Iterator接口中有三个方法:boolean hasNext():如果仍有元素可以迭代,则返回trueObject Next():返回迭代的下一个元素void remove():从迭代器...原创 2018-04-24 16:42:49 · 269 阅读 · 0 评论 -
【Java】InetAddress类
转载:http://www.jb51.net/article/73189.htmInetAddress类Java.net包中有InetAddress类的定义,InetAddress类的对象用于IP地址和域名,该类提供以下方法:getByName(String s):获得一个InetAddress 类的对象,该对象中含有主机的IP地址和域名,该对象用如下格式表示它包含的信息:www.sina.com...原创 2018-04-19 17:42:14 · 194 阅读 · 0 评论 -
【Java】【集合】collection接口常见方法、集合转数组toArray()、带ALL的方法
Collection接口是集合体系不断向上抽取共性内容而来的。其下有两个子接口:List(列表),Set(集)。Collection |--List:元素是有序的,元素可以重复。因为该集合体系有索引。 |--Set:元素是无序的,元素不可以重复。一、collection接口常见方法boolean add(E e)boolean remove(Object o)void clear()boole...原创 2018-04-23 22:46:14 · 679 阅读 · 0 评论 -
【java】【多线程】睡眠/守护/加入/礼让线程,线程优先级(4)
一、休眠线程--sleep()Thread.sleep(毫秒,纳秒):控制当前线程休眠若干毫秒,遇到就会睡着时间到了就会自动醒来继续执行静态方法:类名.方法调用 注意:1秒= 1000毫秒,1秒 = 1000 * 1000 * 1000=1000000000纳秒,因此windows系统对纳秒的支持不够好,因此用毫秒。若在主线程中使用sleep(),则会中断异常,需抛出。若使用Thread或者...原创 2018-04-15 22:13:20 · 786 阅读 · 0 评论 -
【java】【多线程】获取和设置线程名字、获取线程对象(3)
一、获取名字和设置名字 (掌握)1.获取名字通过getName()方法获取线程对象的名字:如果不设置名字。默认为Thread-0、Thread-1。2.设置名字(两种方式:构造、setName()) 1)通过构造函数可以传入String类型的名字new Thread("xxx") { public void run() { for(int i = 0;...原创 2018-04-15 21:24:38 · 5133 阅读 · 0 评论 -
【java】异常
转载:https://blog.csdn.net/weisg81/article/details/52139179 https://blog.csdn.net/zhangliangzi/article/details/51290026一、概述在Java中,所有的事件都能由类描述,Java中的异常就是由java.lang包下的异常类描述的。异常就是java程序在运行过程中出现的错误...原创 2018-04-10 12:41:02 · 247 阅读 · 0 评论