git使用教程

对于git我们都知道是用来进行版本控制的,但是什么是版本控制呢

Java

mybatis-plus学习笔记

上一篇为mybatis-plus一些简单使用,现在我们来系统的学习一下mybatis-plus

Java

手写一个简单的HashMap

实现一个简单的HashMap

朋友面试,遇到了一个问题,在没有提供HashMap API的情况下,怎么实现一个HashMap

这个问题,考察的无非是对HashMap的理解,考察的HashMap的底层结构

话不多说直接上图

Java

对象加载过程

对象的创建

当java虚拟机遇到一条字节码new指令时

JavaJVM

java基础知识整理

自动类型转换遵循下面的规则

1、若参与运算的数据类型不同,则先转换成同一类型,然后进行运算

Java

java的重写和重载

方法重写(两同两小一大)

参数列表必须完全与被重写方法的相同。(同)

方法名相同(同)

返回类型小于或者等于重写方法的返回类型。(小)

Java

java类加载机制

java的类加载机制

当程序主动使用某个类时,如果该类还未被加载到内存中,则JVM或通过加载、链接、初始化3个步骤来对该类进行初始化。如果没有意外,JVM将会连续完成3个步骤,所以有时也把这3个步骤统称为类加载或类初始化。

Java

Java中各种锁的详解

Java中多种锁的实现详解

1、synchronized和Lock

java中有两种锁的加锁方式:一种是用于synchronized关键字,另一种是用Lock接口实现类

形象地说,synchronized关键字是自动挡,可以满足一切日常驾驶需求。但是如果你想要玩其他的骚操作,就需要手动挡—各种Lock实现类

所以如果你只是想要简单的加个锁,对性能也没有什么特别的要求,用synchronized关键字就足够了。自从Java 5 之后,才在java.util.concurrent.locks包下有了另一种方式来实现锁那就是Lock。也就是说,synchronized是Java语言内置的关键字,而Lock是一个接口,这个接口的实现类在代码层面实现了锁的功能,具体实现有兴趣可以自己研究一下哦。

Java

JUC并发编程

1、线程和进程

进程:程序的集合。一个进程往往可以包含多个线程,至少包含一个

java默认有两个线程:一个main线程,一个gc线程

线程:线程是cpu调度和执行的单位,对于java而言:Thread、Runnable、Callable

Java

多线程详解

Process与Thread

  • 程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念

  • 而进程则是程序的一次执行过程,它是一个动态的概念。是系统资源分配的单位

  • 通常在一个进程中可以包含若干个线程,当然一个进程中至少有一个线程,不然没有存在的意义。线程是cpu调度和执行的单位。

    注意:很多线程是模拟出来的,真正的多线程是指有多个cpu,即多核,如服务器。如果是模拟出来的多线程,即在一个cpu的情况下,在同一个时间点,cpu只能执行一个代码,因为切换的很快,所以就有同时执行的错觉。

Java