![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
e电动小马达e
正在努力奋斗的程序猿
展开
-
Java反射详解
一、前言有反射就有“正射”一说。一般情况下,我们使用某个类时必定知道它是什么类,是用来做什么的。于是我们直接对这个类进行实例化,之后使用这个类对象进行操作。 Apple apple = new Apple(); //直接初始化,「正射」 apple.setPrice(4);上面这样子进行类对象的初始化,我们可以理解为“正射”。而反射则是一开始并不知道我要初始化的类对象是什么,自然也无法使用 new 关键字来创建对象了。这时候,我们使用 JDK 提供的反射 API 进行反射调用: Class原创 2020-10-09 15:45:40 · 165 阅读 · 0 评论 -
java多线程(五):线程池详解
1、线程池的优势:重用线程池中的线程,避免因为线程的创建和销毁所带来的性能开销。能有效控制线程池的最大并发数,避免大量的线程之间因互相抢占系统资源而导致的阻塞现象。能对线程进行简单的管理。并提供定时执行以及指定间隔循环执行等功能。ThreadPoolExecutor的构造方法可以通过ThreadPoolExecutor来创建一个线程池,ThreadPoolExecutor类一共有4个构造方法。其中,拥有最多参数的构造方法:public ThreadPoolExecutor(int coreP原创 2020-09-09 20:14:31 · 252 阅读 · 0 评论 -
java多线程(四):Runnable和Thread的简单使用
public class MyRunnable implements Runnable{ private String name; public MyRunnable(String name) { this.name = name; } @Override public void run() { for (int i = 1; i < 11; i++){ System.out.println(nam.原创 2020-09-09 17:38:23 · 276 阅读 · 0 评论 -
Java位运算——byte数组与int,long,short以及String的转换
一、位运算符位运算符用来对二进制位进行操作,~,&,|,^分别为取反,按位与与,按位与或,按位与异或运算,如下表实例:pqp & qp | qp ^ q00000010111111010011进行位运算:运算符描述图解实例&按位与。按位与运算符对两个数进行操作,...原创 2020-04-12 17:33:02 · 2625 阅读 · 0 评论 -
Java 基本数据类型
一、简单类型及其封装器类bit就是位,也叫比特位,是计算机表示数据最小的单位byte就是字节,1byte=8bit ,0001 1100,一般用两个16进制来显示如:1cJava基本类型共有八种,基本类型可以分为三类,字符类型char,布尔类型boolean以及数值类型byte、short、int、long、float、double。JAVA中的数值类型不存在无符号的,它们的取值范围是...原创 2020-04-10 21:45:32 · 252 阅读 · 0 评论 -
Java中的Set总结
集合框架提供三种类型的集合:数学集排序集导航集Set集合框架结构:一、数学集Set 接口对数学中的一组进行建模。集合是唯一元素的集合。Java最多允许一个Set中的一个空元素。 Set 中元素的排序并不重要。Java不保证 Set 中元素的排序。当循环遍历 Set 的所有元素时,你得到 Set 中的每个元素一次。主要实现类HashSet:为快速查找设计的Set。是...原创 2020-04-09 13:38:00 · 169 阅读 · 0 评论 -
Java设计模式 — 代理模式(Proxy)
代理模式(Proxy)Proxy模式,也称代理模式,是经典设计模式中的一种结构型模式,其定义是为其他对象提供一种代理以控制对这个对象的访问,代理对象起到了中介作用,不涉及功能服务,亦可增加额外的服务。通俗来说就是,为其他对象提供代理对象,以控制对这个对象的访问。代理模式的分类远程代理:为不同的地理对象提供局域网代表对象。典型的设计有:C/S架构属于远程代理的缩影虚拟代理:根据需要将资源消...原创 2020-03-17 16:05:09 · 139 阅读 · 0 评论 -
java多线程(三):wait()、sleep()、 join()和yield()区别
前言首先需要先了解synchronized具体的使用方法接着认识两个概念:1.锁池所有需要竞争同步锁的线程都会放在锁池当中,如果当前对象的锁已经被其中一个线程得到,则其他线程需要在这个锁池进行等待,当之前的线程释放同步锁后,锁池中的所有线程都会去竞争同步锁,当某个线程得到后会进入就绪队列进行等待cpu资源分配。2.等待池当我们调用wait()方法后,线程会放到等待池当中,等待池的...原创 2020-02-24 15:17:39 · 168 阅读 · 0 评论 -
Java泛型的理解
一、泛型的定义泛型,即“参数化类型”。就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。一些常用的泛型类型变量:T:代表一般的任何类。E:代表 Element 的意思,或者 Exception 异常的意思。N:数字(Number)K:代表 Key 的意思。V:代表 Valu...原创 2020-02-24 10:07:54 · 139 阅读 · 0 评论 -
在for循环中删除List元素常见错误
一、使用场景如果有一个存在一个字符串List{"a","a",”,"b","c","d","a","b",“a”,"b","c","d"},需要删除其中的"a",我们常常使用for循环遍历该List,然后依次判断每个元素是否为"a",如果该元素为"a"则将该元素从List中romve。二、错误的方式错误的方法1for (int i = 0; i <list.size(); ...原创 2020-02-24 09:38:22 · 2006 阅读 · 1 评论 -
java多线程(二):volatile关键字详解
一、基本概念先补充一下概念:Java 内存模型中的可见性、原子性和有序性。可见性: 可见性是一种复杂的属性,因为可见性中的错误总是会违背我们的直觉。通常,我们无法确保执行读操作的线程能适时地看到其他线程写入的值,有时甚至是根本不可能的事情。为了确保多个线程之间对内存写入操作的可见性,必须使用同步机制。 可见性,是指线程之间的可见性,一个线程修改的状态对另一个线程是可见的。也就是...原创 2020-01-18 08:51:39 · 102 阅读 · 0 评论 -
java多线程(一):Synchronized的使用
一、为什么要使用Synchronized在多线程中如果多个线程同时操作共享数据将会造成不可预计的后果。而关键字Synchronized可以保证在同一时刻只有一个线程可以执行某个方法或某个代码块,同时Synchronized还可以保证一个线程的变化可见(可见性),即可以代替volatile。二、作用Synchronized是Java中解决并发问题的一种最常用最简单的方法 ,他可以确保线程互斥的...原创 2020-01-17 21:05:20 · 235 阅读 · 0 评论 -
Java设计模式 — 适配器模式(Adapter)
适配器模式(Adapter)把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。介绍用电器来打个比喻:有一个电器的插头是三脚的,而现有的插座是两孔的,要使插头插上插座,我们需要一个插头转换器,这个转换器即是适配器。适配器模式涉及3个角色:源(Adaptee):需要被适配的对象或类型,相当于插头。适配器(Adapter):连接目标和...原创 2020-01-03 11:07:18 · 134 阅读 · 0 评论 -
Java设计模式 — 工厂模式(Factory)
工厂模式(Factory)实例化对象,用工厂方法代替new操作。介绍定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。工厂模式要点:简单工厂模式(静态工厂模式)• 虽然某种程度不符合设计原则,但实际使用最多。工厂方法模式• 不修改已有类的前提下,通过增加新的工厂类实现扩展。抽象工厂模式• 不可以增加产品,可以增加产品族!1.简单...原创 2020-01-03 10:22:27 · 255 阅读 · 0 评论 -
Java设计模式 — 观察者模式(Observer)
观察者模式(Observer)观察者模式又称为发布/订阅(Publish/Subscribe)模式,在对象之间定义了一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象会收到通知并自动更新。设计核心抽象被观察者角色: 也就是一个抽象主题,它把所有对观察者对象的引用保存在一个集合中,每个主题都可以有任意数量的观察者。抽象主题提供一个接口,可以增加和删除观察者角色。一般用一个抽象类或接口...原创 2019-12-26 14:17:32 · 296 阅读 · 0 评论 -
Java设计模式 — 模板模式(template)
模板模式(template)定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。介绍定义一个模板结构,将具体内容延迟到子类去实现。示例父类/** * 父类 * * 抽象模板中使用抽象而不是用接口的原因是,抽象模板的父类中有模板方法,模板方法不是抽象方法,而接口中的方法要求全部是抽象的, * 所以这里不能使用...原创 2019-12-26 14:15:47 · 154 阅读 · 0 评论 -
Java设计模式 — 单例模式(Singleton)
单例模式(Singleton)某个类只能生成一个实例,该类提供了一个全局访问点供外部获取该实例,其拓展是有限多例模式。1.懒汉式,线程不安全是否 Lazy 初始化:是是否多线程安全:否实现难度:易描述:这种方式是最基本的实现方式,这种实现最大的问题就是不支持多线程。因为没有加锁 synchronized,所以严格意义上它并不算单例模式。这种方式 lazy loading 很明显,不要求...原创 2019-12-26 14:13:38 · 176 阅读 · 0 评论 -
Java设计模式总结
23 种设计模式的分类和功能分类设计模式有两种分类方法,即根据模式的目的来分和根据模式的作用的范围来分。1. 根据目的来分根据模式是用来完成什么工作来划分,这种方式可分为创建型模式、结构型模式和行为型模式 3 种。创建型模式:用于描述“怎样创建对象”,它的主要特点是“将对象的创建与使用分离”。GoF 中提供了单例、原型、工厂方法、抽象工厂、建造者等 5 种创建型模式。结构型模式:用于描...原创 2019-11-23 17:25:03 · 397 阅读 · 0 评论 -
java中I/O流之字节流和字符流
一、绪论如果要进行文件内容的操作那么必须依靠数据流完成,而数据流分为两种: 字节流:InputStream(字节输入流)、OutputStream(字节输出流); 字符流:Reader(字符输入流)、Writer(字符输出流);二、区别字节流是原生的操作,而字符流是经过处理后的操作。在进行网络数据传输、磁盘数据保存所保存所支持的数据类型只有:字节。而所有磁盘中的数据必须先读取到...转载 2019-11-28 17:06:51 · 128 阅读 · 0 评论