![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
huanglu12138
.
展开
-
反射整理
获取包名和类名:System.out.println(cls.getPackage().getName());取得父类的Class对象: public native Class<? super T> getSuperclass();取得实现的父接口:public Class<?>[] getInterfaces()反射实例化对象Class<?> cls ...原创 2019-08-25 21:50:07 · 112 阅读 · 0 评论 -
Java包的定义及使用
包的本质实际上就属于一个文件夹。在项目开发中很难避免类名称重复的问题。如果所有的java文件都放在一个文 件夹中,就有可能存在覆盖问题。1.包的定义:在Java文件首行使用 package 报名称;即可。2。包的导入3.权限访问控制修饰符private<default<protected<public ,可以看到public访问控制权限最大,永远都可以访问。4...原创 2019-04-06 14:57:03 · 353 阅读 · 0 评论 -
Java中异常与捕获
try catch finalthrow关键字throws关键字原创 2019-04-11 14:54:00 · 87 阅读 · 0 评论 -
Java之可变参数
1.可变参数可变参数是在JDK1.5之后追加的概念。语法结构如下:public [static] [final] 返回值 方法名称([参数类型 参数名称][参数类型 … 参数名称]){}public class varying_parameter { public static void main(String[] args) { System.out.print...原创 2019-04-11 15:07:17 · 100 阅读 · 0 评论 -
Java之泛型
1.泛型类原创 2019-04-12 12:17:13 · 218 阅读 · 0 评论 -
Java之枚举
1.枚举(enmu)2.注解(Anotation)原创 2019-04-12 13:52:15 · 98 阅读 · 0 评论 -
Java之注解(简单了解)
注解(Annotation)原创 2019-04-14 09:29:46 · 80 阅读 · 0 评论 -
Java之函数式编程:lambda表达式及函数式接口
要想使用函数式编程有一个前提:接口必须只有一个方法,如果有两个方法,则无法使用函数式编程。如果现在某 个接口就是为了函数式编程而生的,最好在定义时就让其只能够定义一个方法,所以有了一个新的注解:@FunctionalInterface...原创 2019-04-14 09:43:43 · 183 阅读 · 0 评论 -
Java之方法引用
从最初开始,只要是进行引用都是针对于引用类型完成的,也就是只有数组、类、接口具备引用操作。但是JDK1.8 开始追加了方法引用的概念。实际上引用的本质就是别名。所以方法的引用也是别名的使用。而方法引用的类型有 四种形式:引用静态方法:类名称::static 方法名称 ;引用某个对象的方法:实例化对象 :: 普通方法 ;引用某个特定类的方法: 类名称 :: 普通方法 ;引用构造方法: 类名...原创 2019-04-14 14:59:41 · 142 阅读 · 0 评论 -
Java反射之 三种实例化对象的方法
首先,反射是指根据对象来取得对象的来源信息,其中的一个核心操作就是Object类的一个getclass方法取得Class对象:public final native Class<?> getClass();该方法返回的是一个Class类对象,这个Class描述的就是类。在反射的世界里面,看重的不再是一个对象,而是对象身后的组成(类、构造、普通、成员等) 。Class类是描述...原创 2019-04-19 15:50:11 · 1323 阅读 · 0 评论 -
java反射VS工厂模式
传统的工厂类每新增加一个子类时,都需要去修改工厂类,让它去产生一个新增子类的对象。这样就非常麻烦。解决此问题的关键在于实例化对象的方式new上,如果使用反射去实例化对象就可以很好的解决这个问题,以下是代码实例:nterface Phone{ public void BuyPhone();}class XiaoMi implements Phone{ @Override ...原创 2019-04-19 16:53:41 · 303 阅读 · 0 评论 -
Java之反射调用普通方法
通过反射我们可以调用类种属性,构造,以及普通方法和父类信息。以下我主要说一下反射调用普通方法。在Class类中有以下俩种取得类中普通方法的方法:取得全部普通方法:public Method[] getMethods() throws SecurityException取得指定普通方法:public Method getMethod(String name, Class<?>...原创 2019-04-20 18:23:25 · 4868 阅读 · 0 评论 -
Java多线程之生产者消费者模型
import java.util.LinkedList;import java.util.Queue;import java.util.concurrent.atomic.AtomicInteger;/** * 消费者: * 1. 消费商品 * 2. 从容器中取出商品 * 3. 如果容器为空,通知生产者生产 */class Customer implements Runnabl...原创 2019-07-18 01:20:23 · 221 阅读 · 0 评论 -
Java集合类
HashMap、TreeMap、Hashtable的关系与区别a.这三个类都是Map接口下的常用子类,Hashtable基于哈希表实现,TreeMap基于红黑树实现,HashMap基于哈希表+红黑树(JDK1.8之后,JDK1.8基于哈希表)b.关于null,HashMap允许key、value为null.Hashtable key与value均不为null.TreeMap只允许va...原创 2019-07-21 14:16:25 · 86 阅读 · 0 评论 -
简单解析 兼顾高效与安全的ConcyrrentHashmap
我们直到?HashTable虽是线程安全的但是它锁住了整张hash表,所以性能很低,读读都互斥。那么ConcyrrentHashmap时如何在兼顾安全性的同时有实现高效性的呢?首先是JDK1.7中ConcyrrentHashmap的实现原理。相对于线程安全的Hashtable来说,ConcyrrentHashmap的性能更高,原因是什么呢?在JDK1.7中ConcyrrentHashmap...原创 2019-08-06 13:51:24 · 419 阅读 · 0 评论 -
走进JVM
首先,需要明白JVM是什么?JVM(Java Virtual Machine的简称。意为Java虚拟机。).是通过软件模拟Java字节码的指令集,JVM中只是主要保留了PC寄存器,其他的寄存器都进行了裁剪 JVM是一台被定制过的现实当中不存在的计算机可以说JVM是Java实现跨平台的核心,也是整个Java的核心之一,是Java程序运行的必备条件,下面就描述介绍一下有关JVM的若干东西。JVM...原创 2019-08-07 15:48:43 · 160 阅读 · 1 评论 -
多线程及线程的同步与锁死
Java中的多线程实现方式:继承Thread实现Runnable、Callable线程池(推荐)Java中线程分为俩类:用户线程:用户创建的默认都是用户线程,包括主线程。可以使用setDeamn()方法将用户线程置为守护线程。守护线程:只有当当前的JVM进程中最后一个用户线程终止,守护线程会随着JVM一起终止。GC就是一个典型的守护线程多线程的常用方法sleep()线程...原创 2019-08-12 14:36:06 · 227 阅读 · 0 评论 -
多线程之线程池
首先说一说线程池的优点原创 2019-08-21 08:32:47 · 156 阅读 · 0 评论 -
Java三大类之包装类
包装类就是将基本数据类型封装到类中原创 2019-04-05 16:55:37 · 124 阅读 · 0 评论 -
Java三大特殊类之object类
Object是Java默认提供的一个类。Java里面除了Object类,所有的类都是存在继承关系的。默认会继承Object父 类。即,所有类的对象都可以使用Object进行接收。下面有几个比较常用的方法1.toString方法在使用对象直接输出的时候,默认输出的是一个地址编码。如果现在使用的是String类,该类对象直接输出的是内 容,主要原因就是toString()方法的问题。clas...原创 2019-04-03 21:45:00 · 130 阅读 · 0 评论 -
Java面向对象练习
1.创建一个Test类,包含有一个public权限的int型成员变量与一个char类型的成员变量,观察在main方法中的初始值。public class Text { public static char str ; public static int Int ; public static void main (String [] args) { ...原创 2019-02-13 13:44:51 · 165 阅读 · 0 评论 -
Java基本数据类型及运算符小结
数据类型运算符原创 2019-03-05 19:46:17 · 252 阅读 · 0 评论 -
Java抽象类
抽象类就是普通类的超集,并且需要用abstract关键字来修饰。如何理解“超集”呢?简单来说就是抽象类比普通类多了一个“抽象方法“,且抽象类中也可不含抽象方法。抽象方法就是使用abstract关键字定义的只有方法声明没有方法体的方法。abstract class Person(){ public abstract void IDcardnumber();}那么与普通类相比在...原创 2019-03-07 21:45:15 · 142 阅读 · 0 评论 -
Java中方法的定义及使用
方法的定义:一段可以被重复调用的代码public static 方法返回值 方法名称([参数类型 变量 ...]) { 方法体代码; [return 返回值]; }下面是一个具体实例public class Test{ public static void main(String[] args) { System.out....原创 2019-03-10 10:56:23 · 142 阅读 · 0 评论 -
Java打印水仙花数
打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。...原创 2019-03-13 18:00:12 · 410 阅读 · 0 评论 -
Java中数组的定义即使用
数组指的就是一组相关类型的变量集合,并且这些变量可以按照统一的方式进行操作。原创 2019-03-13 20:56:50 · 180 阅读 · 0 评论 -
Java中类与对象
所谓的类就是指共性的概念,而对象指的是一个具体的、可以使用的事物。首先产生类(类是生产对象的蓝图),而后才可以产生对象。对象的所有行为,一定在类中进行了完整的定义。类中的组成:1.方法(操作的行为)2.属性(变量,描述每个对象的具体特点)那么如何取写一个类呢?语法如下class 类名称{属性1;属性2;属性n…;方法1(){}方法2(){}方法n(){}…}下面举一个...原创 2019-03-17 17:08:02 · 113 阅读 · 0 评论 -
private关键字的使用
private实现封装,封装时面向对象语言的三大特征之一。所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者 对象操作,对不可信的进行信息隐藏。简而言之就是,内部操作对外部而言不可见(保护性) 。所谓保护性是指:也因此需要对类中属性进行封装处理,而被private修饰的属性或方法表示该属性只能在本类中使用,其他类无法直接使用。且,要访问私有属性,按照Jav...原创 2019-03-17 18:25:06 · 1287 阅读 · 0 评论 -
static关键字
一原创 2019-03-19 22:51:11 · 74 阅读 · 0 评论 -
this关键字
一原创 2019-03-20 13:19:33 · 86 阅读 · 0 评论 -
Java接口以及接口简单实现计算器
接口:就是全局常量与抽象方法的集合,在Java中使用interface关键字定义原创 2019-03-22 20:01:56 · 4835 阅读 · 0 评论 -
Java代码块
代码块定义:使用 {} 定义的一段代码。根据代码块定义的位置以及关键字,又可分为以下四种:普通代码块 :定义在方法中的代码块构造块:定义在类中的代码块(不加修饰符)静态块 :使用static定义的代码块同步代码块class HelloA { //构造方法 public HelloA(){ System.out.println("Hello A!父类构造方...原创 2019-03-24 09:22:24 · 81 阅读 · 0 评论 -
Java内部类
内部类:所谓内部类就是在一个类的内部进行其他类结构的嵌套的操作。简单来说就是在类的内部又定义了一个类根据内部类定义的位置及关键字。一共可将内部类分为4类:1.成员内部类(普通内部类)类比普通属性定义:直接定义在外部类的内部不加static属性修饰在外部类的外部直接创建成员内部类语法:限制:...原创 2019-03-24 10:00:56 · 105 阅读 · 0 评论 -
Java中继承的概念及使用
在Java中,继承使用extends关键字来实现,定义的语法如下:class 子类 extends 父类子类有时也叫派生类,父类有时也叫超类当发生了类继承关系之后,子类可以直接继承父类的操作,可以实现代码的重用。子类最 低也维持和父类相同的功能。子类可以进行功能的扩充。例如:扩充属性和方法。class Person{ private String name; privat...原创 2019-03-24 10:50:43 · 3332 阅读 · 0 评论 -
方法重载与方法覆写
一,方法覆写(override)方法的覆写:子类定义了与父类方法名称、参数类型及个数完全相同的方法。但是被覆写不能够拥有比父类更为严 格的访问控制权限。注意:你当前使用的对象是通过哪个类new的。当调用某个方法,如果该方法已经被子类所覆写了,那么调用的一定是被覆写过的方法。二,方法重载(overload)三、方法覆写与方法重载的区别...原创 2019-03-24 11:41:28 · 137 阅读 · 0 评论 -
final关键字
在Java中final被称为是“终结器”。为什么叫“终结器”呢?我们通过下文final的性质及用法就能了解它取这个外号的原因。一、修饰类、方法,属性1.final可以修饰类、方法、属性 。(1)使用final定义的方法不能被子类所覆写2.final成员变量必须在声明的时候初始化或者在构造器中初始化,否则就会报编译错误(1)使用final定义的变量就成为了常量,常量必须在声明时赋值,并且不能够被修...原创 2019-03-25 08:57:38 · 166 阅读 · 0 评论 -
Java三大特殊类之String类
final class String1.实例化方式(1)直接赋值String str = "Hello World"; //str是一个对象,那么"Hello World" 就应该保存在堆内存中 (2)通过构造方法String str = new String("Hello World");System.out.println(str);2.俩种实例化的区别(1)直接赋值...原创 2019-04-01 12:31:23 · 135 阅读 · 0 评论 -
多线程之等待与唤醒机制
等待与唤醒机制(线程间通信方式之一)1. synchronized的wait/notify 调用notify后,将等待队列的线程唤醒值同步队列的末尾排队获取锁notify线程直到将自己的同步代码块执行完后,才会释放锁。任意一个monitor有一个同步队列和一个等待队列(生产,消费者的wait都进入一个队列)只有一个等待队列时,唤醒所有线程(notifyall)一定会唤醒不该唤醒的线程...原创 2019-08-12 15:13:37 · 297 阅读 · 0 评论