![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 69
chuhan_19930314
这个作者很懒,什么都没留下…
展开
-
Java学习(十七)-异步线程CompletableFuture
1、Future模式Future模式是多线程开发中非常常见的一种设计模式。它的核心思想是异步调用。当我们需要调用一个函数方法时。如果这个函数执行很慢,那么我们就要进行等待。但有时候,我们可能并不急着要结果。因此,我们可以让被调用者立即返回,让他在后台慢慢处理这个请求。对于调用者来说,则可以先处理一些其他任务,在真正需要数据的场合再去尝试获取需要的数据。2、CompletableFuture详解2.1、创建CompletableFuture对象1 public static CompletableFu原创 2021-11-23 13:25:45 · 528 阅读 · 0 评论 -
Java学习(十六)-线程与线程池学习(Thread与ThreadPoolExecutor)
一、ThreadJava创建线程Thread的三种方式1、通过继承Thread类创建线程**单继承:**编写简单,缺点是只能继承一个类,要是想同时继承其他业务类,不能实现;要想实现多继承,只能使用implements2、通过实现Runnable接口来创建线程**数据共享:**Runnable是可以实现数据共享的,多个Thread可以同时加载一个runnable**线程不安全:**当各自Thread获得CPU时间片的时候开始运行Runnable,Runnable里面的资源是被共享的,所以使用原创 2021-11-22 11:57:24 · 553 阅读 · 0 评论 -
Java基础(一)
Java基础(一)一、Java特点面向对象平台独立性和可移植性(任何平台可以运行,因为jvm;eclipse/javac编译java代码.class文件,再打包成.jar文件,就可以在Windows、mac、linux任何系统运行,每个系统有不同的JVM实现)容易实现多线程高性能,动态编译执行(通过JVM中的JIT(Just-In-Time)编译器在运行时将热点代码编译成机器码运行,效率高)二、运行环境JDK:开发环境JRE:运行环境...原创 2021-11-15 21:48:57 · 251 阅读 · 0 评论 -
java总结-面试相关(一)
1、java中socket的server和clientserver端1.创建服务器端ServerSocket对象,ServerSocket serverSocket=new ServerSocket(9999);2.监听客户端对象, Socket socket=serverSocket.accept();3.获取输入流,读取客户端对象,BufferedReader br=new Buf...原创 2019-03-23 09:09:38 · 136 阅读 · 0 评论 -
java学习(十五)-volatile、ThreadLocal与synchronized
1.volatilevolatile主要是用来在多线程中同步变量。在一般情况下,为了提升性能,每个线程在运行时都会将主内存中的变量保存一份在自己的内存中作为变量副本,但是这样就很容易出现多个线程中保存的副本变量不一致,或与主内存的中的变量值不一致的情况。而当一个变量被volatile修饰后,该变量就不能被缓存到线程的内存中,它会告诉编译器不要进行任何移出读取和写入操作的优化,换句话说就是不允...原创 2019-03-23 11:14:15 · 156 阅读 · 0 评论 -
原 java学习(十四)-java代理
一、java代理1.1、代理模式:代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。1.2、代理的种类:静态代理:...原创 2019-03-16 09:37:04 · 166 阅读 · 0 评论 -
java学习(十三)-Vector与ArrayList 、LinkList的理解
1、集合类型collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMap2、Collection接口Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(elements),一些Colle...原创 2019-03-14 13:11:25 · 143 阅读 · 0 评论 -
java学习(十一)-线程和java的锁
一、线程与进程1.1、定义进程:系统进行资源分配和调度的一个独立单位.线程:进程的一个实体,是CPU调度和分派的基本单位,线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.一个进程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行.1.2、区别一个程序至少有一个...原创 2019-03-09 14:19:30 · 99 阅读 · 0 评论 -
java学习(十二)-HashMap、Hashtable和ConcurrentHashMap区别
1、概述HashMap:不加锁,在并发量不大的情况下高效且线程安全HashTable:全加锁,在并发量大的时候是线程安全的,但是因为加锁效率比较低ConsurrentHashMap:采用的是分段加锁,尽量对数据不加锁,相对HashMap而言更安全,对HashTable而且更加高效。2、HashMap和Hashtable区别,三个方面考虑:线程安全性,同步(synchronizatio...原创 2019-03-14 09:22:03 · 118 阅读 · 0 评论 -
java学习(十)-序列化和文件处理
一、序列化与反序列化1.1、java的序列化与反序列化对象的序列化:把对象转换为字节序列的过程对象的反序列化:把字节序列恢复为对象的过程1.2、对象的序列化主要有两种用途:把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中;在网络上传送对象的字节序列。1.3、其他序列化形式json和xml都属于序列化,java的序列化适用于远程rpc接口,双方都是使用java对象进...原创 2019-03-09 11:21:07 · 127 阅读 · 0 评论 -
java学习(九)-异常处理
1、异常处理java的异常处理机制是个简洁、轻量化的执行期间例外状况处理方式,他让你能够将处理错误状态的程序代码摆在一个容易阅读的位置。try-catch模块,告知编译器你确实值得所有调用的方法有风险,并且也已经准备好要处理它,异常是Exception类型的对象可能会抛出异常的方法必须是声明成throws Exceptiontry-catch-finally,finally是无论如何都...原创 2019-03-03 17:10:17 · 73 阅读 · 0 评论 -
java学习(八)-集合与泛型
1、装箱和拆箱2、ArrayListArrayList类型的声明是正确的。ArrayList声明是错误的。因为泛型的规则是你只能指定类和接口类型。后面那种声明方法无法通过编译...原创 2019-03-03 16:54:00 · 129 阅读 · 0 评论 -
java学习(七)-数字、静态(static)与不可变(final)
1、静态(static)java虽然是面向对象的,但若处于某些特殊情况下,通常是实用方法,则不需要类的实例,stati这个关键词就可以标记处不需要类实例的方法。static修饰类为静态类,该类不允许被实例化。静态类通过私有的构造方法,来禁止该类被实例化。例如:Math、String等statis修饰方法为静态方法,不能调用非静态的变量。也不能调用非静态的方法,非静态的方法必须是以实例变量...原创 2019-03-03 16:37:00 · 708 阅读 · 0 评论 -
java学习(六)-构造器与垃圾收集器
一、对象的前世今生1、java中,需要关注的两种内存空间堆(heap):对象的生存空间(包含实例变量)栈(stack):方法调用及局部变量的生存空间注意:当堆上的对象是primitive类型的,则java会根据主数据类型的大小为该实例变量留下空间,若是引用变量类型,此时java也只会留下引用量所需要的空间,而不是改引用量指向的对象的实际空间。2、构造方法每个类存在默认、无参的构造...原创 2019-03-03 15:41:16 · 81 阅读 · 0 评论 -
java学习(五)-Object
1、Objectobject类是所有类的来源,常用被重写的方法:equals()、toString()、getClass()、hashCode();被定义成final 的方法不允许被覆盖因为不含有必须被继承的方法,所以不是抽象类;2、目的:总结目的有两个:一是作为多态让方法可以处理多种类型的机制,二是提高java在执行期间对任何对象都有需要的方法的实现程序代码,让所有的类都会继...原创 2019-03-03 14:28:32 · 77 阅读 · 0 评论 -
java学习(四)-覆盖(override)与重载(overload)
1、覆盖(重写(override))原则:方法明和参数必须一样返回类型必须相同或者可兼容不能降低方法的存取权限注意:当子类引用的方法名和参数类型均与父类一致,则可看作是覆盖,其方法的返回类型必须与父类方法相同或者兼容(即为该类型或该类型子类)2、重载(overload)重载与继承和多态无关具有相同的方法名,和不同的参数可以任意修改返回类型可以修改方法的存取权限注意:方法名...原创 2019-03-02 21:39:15 · 108 阅读 · 0 评论 -
java学习(三)-抽象类和接口
1、概念抽奖类,是对类(包括属性和行为)进行抽象;接口,是对行为进行抽象,抽象类,一般都是知道会有子类,并抽离出其通用性规则;接口,一般不知道其实现类,只是定出一些规则子类,只能继承一个父类;实现接口类,可以实现多个接口抽奖类,可以拥有任意成员变量、也可以拥有非抽象方法;接口,只能有静态(static)、不可修改(final)的变量和抽象方法,但是jdk8之后,这种规定变化,且可以拥有d...原创 2019-03-02 21:28:34 · 123 阅读 · 0 评论 -
java学习(二)-封装、继承、多态
1、封装1.1、概念:隐藏对象的属性和实现细节,仅对外提供公共访问方式。1.2、优点:使代码模块化,隐藏类的实现细节,提高安全性;让使用者只能通过程序员规定的方法来访问数据;(private、default、protected、public)可以方便的加入存取控制语句,限制不合理操作2、继承2.1、概念:从子类中找到共同的属性和抽象,抽象出来的内容为父类...原创 2019-03-02 21:16:54 · 127 阅读 · 0 评论 -
java学习(一)-基本概念
一、基本概念1、编译器、JVM与解释器Java编译器:将Java源文件(.java文件)编译成字节码文件(.class文件,是特殊的二进制文件,二进制字节码文件),这种字节码就是JVM的“机器语言”。javac.exe可以简单看成是Java编译器。JVM:JVM有自己完善的硬件架构,如处理器、堆栈(Stack)、寄存器等,还具有相应的指令系统(字节码就是一种指令格式)。JVM屏蔽了与具体操...原创 2019-03-02 20:07:37 · 109 阅读 · 0 评论