
Java
大部分是Java基础内容
Crystal_Mria
一个普通的小小程序员,我的心愿是--世界和平。
展开
-
Java 集合总结篇
集合总的接口是 Collectionpublic interface Collection<E> extends Iterable<E> { int size(); boolean isEmpty(); boolean contains(Object o); Iterator<E> iterator(); O...原创 2020-03-24 15:31:53 · 219 阅读 · 0 评论 -
Java基础知识总结
值传递和引用传递Java程序设计语言对对象采用的不是引用调用,实际上,对象引用是按 值传递的。下面再总结一下Java中方法参数的使用情况:一个方法不能修改一个基本数据类型的参数(即数值型或布尔型》一个方法可以改变一个对象参数的状态。一个方法不能让对象参数引用一个新的对象。==与equals(重要)== : 它的作用是判断两个对象的地址是不是相等。即,判断两个对象是不是同一个对象。...原创 2020-03-24 15:29:12 · 193 阅读 · 0 评论 -
Java--ConcurrentHashMap
JDK7的ConcurrentHashMap: ConcurrentHashMap 是一个 Segment 数组,Segment 通过继承 ReentrantLock 来进行加锁,所以每次需要加锁的操作锁住的是一个 segment,这样只要保证每个 Segment 是线程安全的,也就实现了全局的线程安全。 Segment 数组默认是16,不可扩容;Segment 内部是由 数组+链表 组成...原创 2018-07-31 17:14:27 · 188 阅读 · 0 评论 -
Java--并发总结
并发总结并行和并发的区别: 并行是指多个事件在同一时刻发生(例如多核处理器可同时处理不同的任务);而并发是指多个事件在同一时间间隔发生 JVMJVM是可运行Java代码的假想计算机,包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收,堆 和 一个存储方法域。JVM是运行在操作系统之上的,它与硬件没有直接的交互。运行过程:Java源文件—-&amp;amp;amp;amp;amp;amp;gt;编译器—-&amp;amp;amp;amp;amp;am原创 2018-06-26 19:02:45 · 277 阅读 · 0 评论 -
Java--ReentrantLock
ReentrantLockLock定义了锁的接口规范。 ReentrantLock实现了Lock接口。 AbstractQueuedSynchronizer中以队列的形式实现线程之间的同步。 ReentrantLock的方法都依赖于AbstractQueuedSynchronizer的实现。1、lock()方法的实现首先,进入lock()方法是调用sync.lock()...原创 2018-06-26 18:57:59 · 181 阅读 · 0 评论 -
Java集合之ArrayList
集合之ArrayList篇简介:ArrayList就是动态数组,实现了List,RandomAccess(快速随机访问),Cloneable(克隆),Serializable(序列化)接口。public class ArrayList<E> extends AbstractList<E> implement...原创 2018-06-16 15:50:45 · 379 阅读 · 0 评论 -
Java基础之HashMap
概要:1、HashMap介绍2、HashMap数据结构3、HashMap源码分析4、HashMap注意事项1、HashMap介绍HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。HashMap存储的内容是键值对(key-value)映射,继承AbstractMap实现Map接口;HashMap是基于哈希表的Map接口的非同步实现。并允许使...原创 2018-06-16 16:21:12 · 144 阅读 · 0 评论 -
Java集合之队列
集合之队列QueueQueue用于模拟队列这种数据结构,队列通常是先进先出的容器,新元素插入(offer)到队列的尾部,访问元素(poll)返回队列的头元素。Queue接口有一个PriorityQueue实现类,除此之外还有一个Deque接口,而Deque有ArrayDeque和LinkedList类实现,下面详细讲这几个。Queue主要定义的方法offer(Object...原创 2018-06-18 14:19:14 · 1054 阅读 · 0 评论 -
Java--反射
public class TestRef { @Test public void test1() throws Exception { Class&amp;amp;lt;Person&amp;amp;gt; clazz = Person.class; // 创建p对应运行时类Person对象 Person person = clazz.newInstance()...原创 2018-08-31 13:15:36 · 201 阅读 · 0 评论 -
Java--Condition
用来替代传统的Object的wait()、notify()实现线程间的协作,使用Condition的await()、signal()这种方式实现线程间协作更加安全和高效。Condition是个接口,基本的方法就是await()和signal()方法Condition依赖于Lock接口,生成一个Condition的基本代码是lock.newCondition()Conditon中的await(...原创 2019-07-27 14:54:54 · 148 阅读 · 0 评论 -
Java--IO基础
服务器接收客户端发过来的请求,想要进行处理,1. 等待数据到达 2. 拷贝到用户空间1、同步阻塞IO2、同步非阻塞IO非阻塞IO基于状态轮训的方式,虽然能让程序在等待的过程中做点其他的事情,但是频繁的切换运行程序,反而会造成很大的压力。3、IO多路复用/事件驱动其实Nio或者Netty就是基于这种模式,一个线程就可以监听很多IO操作,这样在IO等待上就高效多了。具体实现是依赖于操作...原创 2019-06-11 09:25:50 · 193 阅读 · 0 评论 -
Java--IO和NIO(一)
IO过程:byte[] b = new byte[4096];while((read = inputStream.read(b))&amp;amp;amp;amp;gt;=0) { total = total + read; // other code.... }1)程序员写代码创建一个缓冲区(这个缓冲区是用户缓冲区; 2)当执行到read()方法时,其实...原创 2018-08-23 19:35:21 · 254 阅读 · 0 评论 -
Java--NIO
阻塞与非阻塞 传统的IO都是阻塞式的,当一个线程调用read 或 write 时,线程会被阻塞,直到数据读取或写入,此线程在此期间不能执行其他任务。 Java NIO 是非阻塞的,当线程在此通道进行读写数据时,如果没有数据可以用,该线程可以进行其他任务。阻塞式代码package com.atguigu.nio;import java.io.IOException;import...原创 2018-08-31 13:16:15 · 157 阅读 · 0 评论 -
Java--Servlet
Servlet:创建并返回基于客户请求的动态HTML页面;与其他服务器资源进行通信生命周期:构造器(只调用一次),init,service,destroy(卸载前调用)。 load-on-startup:大于等于0,容器启动时候加载servlet;未指定或负数,使用该servlet时候才加载,正数越小优先级越高。httpServlet继承GenericServlet,而GenericSe...原创 2018-08-06 15:47:02 · 193 阅读 · 0 评论 -
Controller请求参数传递
1. 处理requet uri 部分(这里指uri template中variable,不含queryString部分)的注解: @PathVariable; @GetMapping("article/{id}") public void article(@PathVariable("id") String id) { logger.info("文章{}",id); //业...原创 2019-12-03 14:30:20 · 1415 阅读 · 0 评论 -
Java--Java8Stream
Stream 笔记package com.example.test;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import org.junit.Test;import java.util.*;import java.util.stream.Collecto...原创 2019-01-16 22:19:06 · 172 阅读 · 0 评论 -
Java--多线程
线程优先级: 在Java线程中,通过一个整型成员变量priority来控制优先级,优先级的范围从1~10,在线 程构建的时候可以通过setPriority(int)方法来修改优先级。 注意:线程优先级不能作为程序正确性的依赖,因为操作系统可以完全不用理会Java 线程对于优先级的设定。 线程的状态: Daemon线程是一种支持型线程,因为它主要被用作程序中后台调度以及支持性工作。这...原创 2018-08-31 18:52:26 · 238 阅读 · 0 评论 -
Java--JVM虚拟机
JVM运行时数据区主要分为以下几个: 程序计数器: 当前线程所执行的字节码的行号指示器,每个线程都有一个程序计数器。这是JVM规范中唯一一个没有规定会导致OutOfMemory(内存泄露,下文简称OOM)的区域。 虚拟机栈: 这块内存区域就是我们常常说的“栈”,它用于存放变量。 本地方法栈: 本地方法栈和虚拟机栈类似,不同的是虚拟机栈服务的是Java方法,而本地方法栈服务的是Nat...原创 2018-07-05 14:15:07 · 208 阅读 · 0 评论