Java
冰怜
真正的静,是生命里寂然涤思;真正的动,是世路上毅然向前
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java异常
异常处理机制主要回答了三个问题:What、Where、Why What:异常类型回答了什么被抛出 Where:异常堆栈跟踪回答了在哪抛出 Why:异常信息回答了为什么被抛出 从概念角度解析java的异常处理机制 Error:程序无法处理的程序错误,编译器不做检查(比如内存溢出,这些问题) Exeption:程序可以处理的异常,捕获后可能恢复 总结是前者无法处理的错误,后者是可以处...原创 2019-04-01 22:23:51 · 190 阅读 · 0 评论 -
Java多线程与并发-原理
synchronized 线程安全问题的主要诱因 存在共享数据(也称临界资源) 存在多条线程共同操作这些共享数据 解决问题的根本方法: 同一时刻有且只有一个线程在操作共享数据,其他线程必须等待该线程处理完数据后在对共享数据进行操作 互斥锁的特性 互斥性:即在同一时间只允许一个线程持有某个对象锁,通过这种特性来实现多线程的协调机制,这样在同一时间只有一个线程对需要同步...原创 2019-07-23 00:15:16 · 408 阅读 · 0 评论 -
CAS
CAS 一种高效实现线程安全性的方法 支持原子更新操作,适用于计数器,序列发生器等场景 属于乐观锁机制,号称lock-free CAS操作失败时由开发者决定是继续尝试,还是执行别的操作 CAS思想 包含三个操作数——内存位置(V)、预期原值(A)和新值(B) CAS多数情况下对开发者来说是透明的 J.U.C的atomic包提供了常用的原子性数据类型以及引用、数组等相关原...原创 2019-07-02 11:09:39 · 213 阅读 · 0 评论 -
jmm的内存可见性
什么是Java内存模型中的happens-before Java内存模型JMM Java内存模型(即Java Memory Model,简称JMM)本身是一种抽象的概念, 并不真实存在,它描述的是一组规则或规范,通过这组规范定义了程序中各个变量(包括实例字段,静态字段和构成数组对象的元素)的访问方式 JMM中的主内存 存储Java实例对象 包括成员变量、类信息、常量、静...原创 2019-07-02 10:50:05 · 860 阅读 · 0 评论 -
synchronized和ReentrantLock
synchronized和ReentrantLock的区别 ReentrantLock(再入锁) 位于Java.util.concurrent.locks包 和CountDownLatch、FutureTask、Semaphore一样基于AQS实现 能够实现比synchronized更细粒度的控制,如控制fairness 调用lock()之后,必须调用unlock()释放锁 性能未必...原创 2019-07-02 09:40:14 · 189 阅读 · 0 评论 -
Java—内存模型共享部分
元空间和永久代都是用来存储class的相关信息包括class对象的method和filed等 元空间和永久代是方法区的实现 方法区的jvm的规范 在7以后原先位于方法区的字符串常量池被移到堆中 在8以后使用元空间(使用本地内存)替代永久代(使用jvm内存) 元空间(MetaSpace)与永久代(PermGen)的区别 元空间使用本地内存,而永久代使用的是jvm的内存 Me...原创 2019-04-15 15:13:52 · 257 阅读 · 0 评论 -
Java—内存模型独占部分:程序计数器、虚拟机栈、本地方法栈
内存简介 JVM内存模型—JDK8 线程私有:程序计数器、虚拟机栈、本地方法栈 线程共享:MetaSpace、Java堆 程序计数器 当前线程所执行的字节码行号指示器(逻辑) 改变计数器的值来选取下一条需要执行的字节码指令(if、for这些都需要程序计数器) 和线程是一对一的关系即 "线程私有" 堆方法计数,如果是Native方法则计...原创 2019-04-15 14:56:46 · 581 阅读 · 0 评论 -
SSM—用户登录,注销,注册、校验
mybatis-generator生成实体类、xml这些 结构如下 配置文件如下 applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="...原创 2019-04-21 23:02:45 · 1880 阅读 · 0 评论 -
vue+axios 分类添加功能 element+导航栏
vue+element 这里我引入了自己写的头部模板 目录结构 我的vue版本是2.9 路由是在src/router 先要引入模板 import Login from '@/views/Login/Login' import Category from '@/views/Category/Category' 在写路径 这里的name可以放在:to这些中...原创 2019-04-21 22:39:42 · 769 阅读 · 0 评论 -
java-反射
Java如何加载.class文件 Java虚拟机 java虚拟机: 抽象化的计算机,通过在实际的计算机上个防真模拟计算机功能来实现的,有自己完善的硬件架构:处理器,堆栈,寄存器等, 还具有相应的指令系统,jvm屏蔽了与具体操作系统平台相关的信息,使得java程序只需要生成在java虚拟机上运行字节码,就可以在不同平台上不加修改的运行, 其中最重要的两点: JVM内存结构模型,...原创 2019-04-03 20:36:02 · 165 阅读 · 0 评论 -
Java—内存模型常考题解析(面试)
JVM 三大性能调优参数-Xms -Xmx-Xss的含义 java -Xms128m -Xmx128m -Xss256k -jar xxxx.jar -Xss:规定了每个线程虚拟机栈(堆栈)的大小 -Xms:堆的初始化 -Xmx:堆能达到的最大值 Java内存模型中堆和栈的区别——内存分配策略 静态存储:编译时确定每个数据目标在运行时的存储空间需求 栈式存储:数据区...原创 2019-04-15 22:19:53 · 803 阅读 · 0 评论 -
Java的理解
谈谈你对Java的理解 面试问题 平台无关性 GC 语言特性 面对对象 类库 异常处理 Compile Once,Run Anywhere(如何实现平台无关的?) 编译时:javac 运行时:java .java文件首先经过javac编译生成字节码。将字节码保存在.class文件中。.class文件是跨平台的基础。在由不同平台的JVM进行解析,java语...原创 2019-04-03 15:04:17 · 542 阅读 · 0 评论 -
Java—IO机制、BIO、NIO、AIO
BIO用厕所做比例 一直等待别人厕所上完 ,自己再去 AIO就是 别人上厕所,别人通知你上上完,你在别人上厕所的同时,可以在外面抽烟,做点其他事情,等待 NIO就是 在厕所里面 一直看着别人那里空位 直接上厕所 BIO Block-IO:InputStream和OutputStream,Reade和Writer package com.binglian.IO; ...原创 2019-04-03 12:36:35 · 363 阅读 · 0 评论 -
Java—ClassLoader
ClassLoader种类 BootStrapClassLoder:C++编写,加载核心库java.*(自带核心库,由jvm内核实现) ExtClassLoader:(用户可见)java编写,加载扩展库javax.*(加载路径System.get.property("java.ext.dirs"),class文件不是一次性加载,用于才去做加载) AppClassLoader:Java编写,加...原创 2019-04-09 09:56:21 · 155 阅读 · 0 评论 -
Java—J.U.C
J.U.C就是 并发工具类 闭锁 CountDownLatch 栅栏CyclicBarrier 信号量 Semaphore 交换机Exchanger CyclicBarrier:阻塞当前线程,等待其他线程 Exchanger ...原创 2019-04-02 21:36:12 · 363 阅读 · 0 评论 -
Java-Map
HashMap HashMap(Java以前):数组+链表 最坏的情况的是从O(1)变成 hashMap(java8及以后):数组+链表+红黑树 HashMap:put方法的逻辑 1.如果HashMap未被初始化过,则初始化 2.对key求Hash值,然后再计算下标 3.如果没有碰撞,直接放入桶中 4.如果碰撞了,以链表的方式链表到后面 5.如果链...原创 2019-04-02 21:04:46 · 152 阅读 · 0 评论 -
java—Collection
List和Set 看结果 得出 LinkedList是无序的、可重复元素 而set它已经排序好了,且不能重复 package com.binglian.collection; import java.util.LinkedList; import java.util.TreeSet; public class DuplicateAndOrderTest { pu...原创 2019-04-01 23:46:19 · 152 阅读 · 0 评论 -
Java多线程与并发
线程和进程的由来 串行:初期的计算机智能串行任务,需要长时间等待用户输入 批处理:预先将用户的指令集中成清单,批量串行处理用户指令,仍然无法并发执行 进程:进程读占内存空间,保存各自运行状态,互相间不干扰且互相切换,为并发处理任务提供了可能 线程:共享进程的内存资源,相互间切换更快捷,支持更细粒度的任务控制,使进程的子任务得以并发执行 进程是资源分配的最小单位,线程是CPU调度...原创 2019-08-06 14:37:00 · 355 阅读 · 0 评论
分享