代码编织梦想

简要学习java中hashtable和hashmap的区别?_学个jvav的博客-爱代码爱编程

HashTable HashTable是JDK1.0时引入的一个线程安全的集合类,因为数据访问的方法都会被加上一个Synchronized同步锁。 HashTable内部是采用数组+链表来实现,链表主要是用来解决hash表hash冲突的问题。 HashTable初始容量为11。 HashTable不可以使用null作为key。 HashM

java中什么是死锁,怎么解决死锁的问题?_学个jvav的博客-爱代码爱编程

死锁 死锁就是两个或者两个以上的线程在运行时争夺同一个共享资源导致互相等待的一个现象,如果没有外部干预的话,这几个线程将会一直处于阻塞状态(同步阻塞),无法继续执行。 死锁触发有四个条件: 1.互斥条件:共享资源A和共享资源B只能被一个线程占用。 2.请求和保持条件:线程Thread1占有共享资源A时,在等待共享资源B的时候是不会释放共享资源A的。

线程的生命周期?线程有哪几种状态?_fover_night的博客-爱代码爱编程

线程的生命周期 1.线程通常有五种状态,创建,就绪,运行,阻塞和死亡状态。 2.阻塞的情况又分为三种: 等待阻塞:运行的线程执行wait方法时,改线程会释放占用的所有资源,JVM会把该线程放入“等待池”中。进入这个状态后,线程是不会自动被唤醒的,必须依靠其他线程调用notify或notifyAll方法才能被唤醒,wait是object类的方法。同步阻

什么是字节码?采用字节码的好处是什么?_fover_night的博客-爱代码爱编程

Java中的编译器和解释器: Java中引入了虚拟机的概念,就是在机器和编译程序(idea等)之间加入了一层抽象的虚拟机。这台虚拟机器在任何平台上都提供编译程序一个共同的接口,所以就算在window、linux下面同样都能运行。 编译程序只需要面向虚拟机,生成虚拟机能够理解的代码,然后由解释器来讲虚拟机代码(.class文件)转换为特定系统地机器码然后

arrylist和linkedlist的区别_fover_night的博客-爱代码爱编程

ArryList ArryList:是基于动态数组,连续内存存储,正因为有连续存储的特性,适合用下标的方式来访问数组中的对象(随机访问);扩容机制:因为数组长度本身是固定的,当定义出来时内存占用也随之会被定死,超出数组定义的长度时就需要新建一个数组,然后将旧数组的对象一个一个拷贝到新的数组当中,如果不是采用尾插法插入数据,而是穿插着插入数组,还会涉及到元

java中hashcode与equals?_fover_night的博客-爱代码爱编程

equals equals是java提供给程序员在对比两个对象时,用来判断这两个对象是否相等,功能上大体是和“==”的作用相同,但equals是一个方法,所以我们可以重写equals方法来更改如何去对比两个对象,就像在String中equals则是去对比两个对象的内容是否相等;当然如果我们不重写equals,那么在Object中默认是去对比两个对象在栈中

==和equals的区别?简述final的作用?重载和重写的方法?_fover_night的博客-爱代码爱编程

==和equals的区别? == 比的是栈中的值,基本数据类型是变量值,引用类型是堆中内存对象的地址。 equals是object默认的也是采用==进行比较,但通常会重写,并且equals是一个方法,是方法就可以被重写,比如说String这个类在重写equals的时候,他就是比较字符串的内容是否相同。 final的作用 修饰类:表示该类不能被继承

什么是面向对象?谈谈你的理解?_fover_night的博客-爱代码爱编程

什么是面向对象?         面向对象和面向过程是两种不同处理问题的角度,面向过程更注重事情的每一个步骤,而面向对象则是更注重参与一件事情里有多少个对象,并且分别需要做什么。         举个例子,比如说我要用热水壶煮茶:         面向过程时——打开水壶——给水壶装水——放入茶叶——加热/煮——水沸腾进入保温——倒出;    

什么是radis缓存雪崩、穿透、击穿?_fover_night的博客-爱代码爱编程

        1.缓存雪崩指的是:同一时间内,Radis中缓存的key同一时间集体失效,导致大量请求直接访问数据库,导致数据库崩溃。         缓存雪崩对应的解决方案:         1.设置在将key存入Radis时给key设置不同的缓存失效时间,让他们不会在同一时间失效;         2.将一些热点key分布设置于Radis的不同节

数据库中雪花算法是什么?_fover_night的博客-爱代码爱编程

一、为何要用雪花算法 1、问题产生的背景 现如今越来越多的公司都在用分布式、微服务,那么对应的就会针对不同的服务进行数据库拆分,然后当数据量上来的时候也会进行分表,那么随之而来的就是分表以后id的问题。 例如之前单体项目中一个表中的数据主键id都是自增的,mysql是利用autoincrement来实现自增,而oracle是利用序列来实现的,但是

java语言控制反转是什么?有什么好处?_fover_night的博客-爱代码爱编程

相信很多初学者在遇到一些这种奇奇怪怪的专业术语的时候很难理解这都是些什么意思,至少我就是如此,特此记录一下。 控制反转(Inversion Of Control),这是一种编程思想,而不是一个什么类或者是什么或者语法, 作用:解开类与类之间的耦合性,实现代码灵活   具体展开一个例子,比如说我需要一个存储一些货物,一开始我自己租了一片地方盖了个仓库