JAVA基础
文章平均质量分 88
maove
不积跬步,无以至千里;不积小流,无以成江海。
展开
-
数据结构--顺序表与ArratList
本片文章主要学习顺序表的核心思想,关于ArrayList不会分析每个方法的实现,也没必要,把握思想即可。原创 2020-10-24 15:05:36 · 239 阅读 · 0 评论 -
HashMap源码分析
1.8之前的HashMap存储数据使用了数组+链表方式1.8之后的HashMap存储数据使用了数组+链表+红黑树的方式声明:本文基于jdk1.8分析首先来看其构造函数:static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16static final float DEFAULT_LOAD_FACTOR = 0.75f;public HashMap() { this.loadFactor = DEFAULT_原创 2022-04-06 22:07:25 · 486 阅读 · 0 评论 -
深入理解Java序列化
一、概念序列化:把Java对象转化为二进制字节码的过程。反序列化:将在序列化过程中所生成的二进制字节码转换成Java对象的过程。为什么需要序列化呢?主要有两个作用:持久化,通过序列化把Java对象转化为二进制字节码,然后可以将其保存在文件中,在合适的时候再反序列化恢复为一个对象。传输,网络上传输的数据都是二进制的形式,再网络上传输一个Java对象需要先序列化为二进制数据,然后在网络的另一端通过反序列化将接收到的二进制数据转为Java对象。二、Serializable接口public in原创 2020-05-31 19:01:38 · 653 阅读 · 0 评论 -
ThreadLocal
ThreadLoca,线程本地变量。它为每一个使用该变量的线程都提供了独立的副本,通过它可以做到线程间的数据隔离,每个线程都可以访问各自内部的副本变量。它本身能够被多个线程共享使用,ThreadLocal类提供了get(),set()方法,在不同的线程中调用它的set方法进行设值,值是保存在当前线程自己的"map"中的。每个线程都只能获取到自己的"map",因此只有自己才可以通过get来获取设...原创 2019-05-01 11:18:34 · 709 阅读 · 0 评论 -
Java内存模型——happens-before原则
在Java内存模型中,为了更好的执行效率,处理器和编译器会对指令进行重排序。就像下面的代码: int a=0,b=0; public void test(){ for (;;){ int x=a; b=1; a++; System.out.println(x); ...原创 2019-04-30 16:36:58 · 546 阅读 · 0 评论 -
String in Java
String 在Java中使用的非常多,只要我们写代码可能就会用到它,但我们真的了解它吗?一、字符串的创建1.1、使用双引号申明在声明字符串时,直接使用双引号声明出来的String对象会直接存储在常量池中。 String str1="hello"; String str2="hello"; System.out.println(str1==st...原创 2019-05-26 18:09:46 · 684 阅读 · 0 评论 -
Socket网络编程——(一)
一、什么是Socket网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接.的一端称为一个socket。端点由IP地址和端口号共同组成,简单的说它是IP地址和端口结合的协议。常用的套接字流式套接字:流套接字用于提供面向连接、可靠的数据传输服务,该服务将保证数据能够实现无差错、无重复发送,并按顺序接收(基于TCP)。数据报套接字:数据报套接字提供了一种无连接的服务。该服务并不能保证...原创 2019-02-12 10:54:58 · 10303 阅读 · 2 评论 -
final finally finalize的区别
1、final 修饰符:final 可以用于修饰类、方法和变量。修饰类:表明该类不可被继承你,无法派生新的子类。修饰方法:该方法不能被重写。修饰变量:只能在申明变量时或构造方法中赋值,一旦赋值了就不能在改变。2、finally在使用try{} catch(){} 时可以在其后加上finally{}也可以不加。如果加上,无论是否发生异常都会执行finally快中的代码,因此我们可以在其...原创 2019-08-12 17:32:14 · 113 阅读 · 0 评论 -
JAVA的四种引用
一、强引用强引用是我们日常写代码最常遇到的引用类型,如:Objectobj=newObject(),obj就是强引用。通过关键字new创建的对象所关联的引用就是强引用。垃圾回收器不会回收这类对象,即使JVM内存空间不足,JVM宁愿抛出OutOfMemoryError,也不会通过回收具有强引用的对象来解决内存空间不足的问题,只有当超过了引用的作用域或者显示的将强引用赋null,该对象才...原创 2018-05-18 23:17:21 · 812 阅读 · 0 评论 -
Spring(一)——使用注解方式开发Spring AOP
AOP的基本概念(1)Aspect(切面):通常是一个类,里面可以定义切入点和通知。(2)JointPoint(连接点):程序执行过程中明确的点,一般是方法的调用(就是要拦截的方法,在这个方法前后织入对应的通知)。(3)Advice(通知):AOP在特定的切入点上执行的增强处理,有before,after,afterReturning,afterThrowing,around。...原创 2018-06-02 22:08:00 · 323 阅读 · 0 评论 -
Sping 数据库事务管理
一、数据库事务的ACID特性原子性(Atomicity):事务是一个原子操作,由一系列动作组成。事务的原子性确保整个事务的所有操作要么全部完成,要么全部不完成。一致性(Consistency):事务一旦完成不管成功还是失败,系统始终处于一致的状态。隔离性(Isolation):不同的事务应该相互隔离,防止数据破坏。持久性(Durability):在事务完成后,该事务对数据库所做的更...原创 2018-06-07 20:58:01 · 263 阅读 · 0 评论 -
Spring(二)——使用XML方式开发Sping AOP
一、如何使用XML配置开发AOP基础知识<aop:aspect> :用于定义切面类。<aop:before> :用于定义前置通知。<aop:after> :用于定义后置通知。<aop:after-throwing> :用于定义异常通知。<aop:after-returning> :用于定义返回通知。&...原创 2018-06-03 15:57:43 · 320 阅读 · 0 评论 -
SSM整合
记录一下整合的过程:一、整合4个配置文件。jdbc.properties、applicationContext.xml、spring-mvc.xml、web.xml首先是jdbc.properties。jdbc.driver=com.microsoft.sqlserver.jdbc.SQLServerDriverjdbc.url=jdbc\:sqlserver\://127.0...原创 2018-08-06 10:35:01 · 591 阅读 · 0 评论