自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

AlbertWC的博客

小萌新之路

  • 博客(42)
  • 收藏
  • 关注

原创 Java基础--HashMap面试最详细知识点总结

一开始以为java hashmap的面试问的会比较基础,比较简单,但是最近看了敖丙面试的一个视频,别人面试时回答关于hashmap的知识点总结,深感自己不足。而且面试官问的也比较细,有深度。原帖:HashMap知识点HashMap在Java后台开发中面试的频率算很高的。但问的有多细还得看面试官了。还是需要再继续努力。这篇就针对面试的常见问题来写知识点吧。Q:你能说一下HashMap的数据结构吗?A: Hashmap在1.7和1.8之间做了一个比较大的改变。 在JDK1...

2020-11-16 21:58:05 210

原创 BeanUtils.copyProperties踩坑笔记。类型转换异常和泛型。

使用方式不介绍。参考https://blog.csdn.net/dongyuxu342719/article/details/90242904注意事项1。源注意看是否一样package org.springframework.beans;BeanUtils.copyProperties(A,B);package org.apache.commons.beanutils;BeanUtils.copyProperties(A,B);第一个A赋值给B,第二个是B赋值给A。看源码也知道不一样

2021-10-20 10:50:37 1026

原创 List<String>和Mybatis报错,BadSqlGarmmer,踩坑笔记。

背景业务需求是根据批量手机号查询用户信息。因此入参应该是List<String>;根据多个手机号批量查询用户,应该是一个很简单的需求。 <select id="queryUsersByMobileList" resultMap="BaseResultMap"> select <include refid="Base_Column_List"/> from t_user where

2021-10-09 17:24:50 422

原创 Java面试--Java序列化和反序列化

什么是序列化和反序列化:序列化就是对一个Java做一下“变化”,变成字节序列。方便持久化存储到磁盘,避免程序运行后对象就从内存里消失,另外变换成字节序列也更便于网络运输和传播。序列化:把Java都西昂转换为字节序列。反序列化:把字节序列恢复成原来的Java对象。那么对象如何序列化?Serializable接口或Externalizable接口实现Serializable接口:1) 系统自动存储必要的信息;2) Java内建支持,易于实现,只需要实现接口,不需要任何代码.

2020-12-03 16:09:04 201

原创 Java面试--String,StringBuffer,StringBuilder区别

都是Java.Lang的子类。都是final类,不可以被继承。StringBuffer是线程安全的,可以不需要额外的同步,用于多线程。StringBuilder是非同步,运行于多线程就需要使用单独同步处理,速度比StringBuffer快。String是字符串常量,不可修改。StringBuffer和StringBuilder是字符串变量。...

2020-12-01 21:57:05 131

原创 Java面试--内存泄漏是什么,如何解决

内存泄漏是什么?提前知识:Java内存管理,只有知道java是如何管理内存的,才能了解什么是 Java 的内存泄漏。Java的内存管理就是对象的分配和释放问题。在Java中,内存的分配是由程序完成的,内存的释放是由GC完成的。我们写程序不需要用函数释放内存。不需要管这些。1. 原因:主要原因就是,之前申请了内存空间但是忘记释放。如果程序中存在无用对象的引用。那么这些对象就会驻留内存,消耗内存。因为无法让GC验证这些对象是否不再需要。Java中,内存泄漏就是存在一些被分配的对.

2020-11-30 18:50:29 182

原创 Java面试--Java异常

Error:Error类及子类的实例代表了JVM本身的错误,错误不能被程序员通过代码来处理,Exception:异常,代表程序运行时发生的各种不期望发生的事件,可以被Java异常机制使用。非检查异常:(unchecked exception):RuntimeException类极其子类表示JVM在运行期间可能出现的错误。编译器不会检查此类异常,并且不要求处理异常,比如用空值对象的引用(NullPointerException)、数组下标越界(ArrayIndexOu...

2020-11-30 13:48:55 146

原创 Java面试--Spring--Spring的事务隔离级别详细解释

Spring的事务隔离级别首先说明一下事务并发引起的三种情况。1.Dirty Read 脏读一个事务正在对数据进行更新但更新未提交,另一个事务读取到了未提交数据,而前一个事务操作失败回滚,后一个事务就脏读了。2.Non-Repeatable Reads不可重复读一个事务多次读取统一数据,该事务还未结束时,另一个事务也对该数据进行了操作。而且在第一个事务两次读取之间,第二个事务对数据进行了更新。那么第一个事务前后两次读到的数据是不同的。3.Phatom Reads 幻读第一个事务正

2020-11-25 21:38:59 370

原创 Java面试--Java线程--Java开启线程的方式

Java多线程之启动的模式:1. 继承Thread类。public class MyThread extends Thread{ public void run(){ for (int i = 0; i < 10; i++) { System.out.println(i+"run..."); } } public static void main(String[] args) { MyThread th

2020-11-24 22:08:34 131

原创 Java面试--Java的设计模式

1.单例模式1.1 懒汉式单例特点是类加载的时候没有生成单例,只有当第一次调用getInstance方法时,才去创建这个单例。public class LazySingleton{ private static volatile LazySingleton instance=null; //保证 instance 在所有线程中同步 private LazySingleton(){} //private 避免类在外部被实例化 public static sy

2020-11-24 15:33:42 94

原创 Java面试--锁升级全面解析

1.6之前,都是Synchronized重量级锁。1.6之后,引入了偏向锁,轻量级锁,重量级锁,来减少竞争带来的上下文切换。锁的四种状态1.无锁状态2.偏向锁3.轻量级锁 CAS4.重量级锁。 synchronizedJava对象头在JVM中,对象是存放在堆内存中的。对象大致可以分为三个部分,对象头,实例变量和填充字节。Synchronized锁对象在对象头的MarkWord中,锁升级主要依赖mark word中的锁标志位和释放偏向锁标识位。用户态和内核态..

2020-11-23 00:43:46 417

原创 Java面试--Spring--Spring事务传播属性详细解释

Spring的事务传播属性:1.Required(默认属性):如果存在一个事务,则支持当前事务。如果没有事务,则开启一个新的事务。2.Mandatory支持当前事务,如果当前没有事务,就抛出异常。3.Never以非事务方式执行,如果当前存在事务,则抛出异常。4.Not_Supported以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。5.Requires_New新建事务,如果当前存在事务,就把当前事务挂起。6.Supports支持当前事务,如果当前.

2020-11-21 22:01:36 306

原创 Java面试---Java字符流和字节流

首先列一个知识点:字节(Byte) 1Byte = 8 bit字符(Character) 1 char = 2 byte = 16bit虽然1 bit才是数据真正的最小单位,但1 bit 的信息量太少了。要表示一个有用的信息,需要好几个bit一起表示。所以除了硬件层面存在1个比特位的寄存器,大多数情况下,字节是数据最小的基本单位。我们熟知的基本型的大小都是8 bit(也就是1字节)的整数倍:boolean: 1 byte short: 2 byte int: 4 byte fl..

2020-11-14 22:45:07 156

原创 数据库知识点--数据库范式 最详细解释!

范式NF 是什么?如何理解数据库范式 刘慰的回答是符合某一种级别的关系模式的集合,表示一个关系内部各属性之间的联系的合理化程度。就是一张数据表的表结构所符合的某种设计标准的级别。就像是买建筑材料,环保的E0级,然后E1,E2等等。数据库也分1NF 2NF 等。符合高一级范式的设计,一定符合低一级的范式。第一范式(原子性,字段不可以再分,否则就不是关系型数据库)首先是1NF,1NF的定义是,符合1NF的关系中的每个属性不可再分。就如上表,实际上,1NF是所有关系型数据...

2020-11-10 19:39:07 657

原创 数据库知识点--存储引擎-数据库索引,最左匹配原则

概念:数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以 获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎。存储引擎主要有: 1. MyIsam , 2. InnoDB, 3. Memory, 4. Archive, 5. Federated 。InnoDB(B+树)适用场景:1)经常更新的表,适合处理多重并发的更新请求。2).

2020-11-08 22:13:12 232

原创 Java面试--Java基础--抽象类和抽象方法

抽象,abstract,当父类的某些方法不确定的时候,我们可以用abstract关键字来修饰该方法。用abstract修饰类。例如,定义动物父类, 其中 动物名称和动物年龄属性已经确定了,但是动物叫的方法没有明确, 此时就可以将动物叫定义为抽象方法。所以,抽象方法是为了把相同的 但不去确定的东西提取出来,为了以后的重用,定义成抽象类的目的,就是为了在子类中实现抽象类。public class AbstractDemo1 { public static voi...

2020-11-07 22:09:17 334

原创 Java面试--Java基础--Java反射

Java中的反射机制是指,在运行状态中,对于任意一个类都能够知道这个类所有的属性和方法。

2020-11-07 22:02:03 85

原创 Java面试--Java基础--Synchronized和ReentrantLock的区别

共同点:1. 都是用来协调多线程共享对象、变量的访问。2. 都是可重入锁,同一线程可以多次获得同一个锁。3. 都保证了可见性和互斥性。不同点:1. ReentrantLock 显示地获得、释放锁。synchronized隐式获得、释放锁。2. ReentrantLock 可响应中断、可轮回,synchronized 是不可以响应中断的,为处理锁的不可用性提供了更高的灵活性3. ReentrantLock 是API 级别的,synchronized 是JVM级别的4. Reentr

2020-11-04 21:47:55 382

原创 Java面试--Java线程--Volatile关键字

我们先从java内存开始讲起。JMM。什么是JMM?JMM即为JAVA 内存模型(java memory model)。因为在不同的硬件生产商和不同的操作系统下,内存的访问逻辑有一定的差异,结果就是当你的代码在某个系统环境下运行良好,并且线程安全,但是换了个系统就出现各种问题。Java内存模型,就是为了屏蔽系统和硬件的差异,让一套代码在不同平台下能到达相同的访问结果。内存划分JMM规定了内存主要划分为主内存和工作内存两种。此处的主内存和工作内存跟JVM内存划分(栈、堆、方法区)是在不同的

2020-11-02 22:05:15 173

原创 Java面试--Spring--Spring常用注解

Spring常用注解bean注入与装配的方式有很多种,可以通过xml、get、set方式,构造函数或者注解等。常用的注解如下。优点:IOC容器是Spring中的特色之一,管理很多Bean。1.@Controller:1.用于标注控制层组件。2.@Controller用于标记在一个类上,使用它的类就是一个SpringMVC Controller对象。3.分发处理器将会扫描使用了该注解类的方法,并检测该方法是否使用了@RequestMapping注解。4.可以把Request请求

2020-10-29 22:13:17 234 1

原创 Java面试--Java多线程并发(二)长文全解析

6.sleep和wait区别1. sleep方法,是属于Thread类的,而wait方法是属于Object类。2.sleep方法导致了程序暂停执行指定的时间,让出cpu的其他线程,但是他的监控状态依然保持,当到了指定的时间又会自动恢复运行状态。3.在调用sleep方法的过程中,线程不会释放对象锁。4.调用wait方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定吃,只有针对次对象调用notify方法,本线程才进入对象锁定池准备获取对象锁进行运行状态。7.start和run区别1.

2020-10-28 19:18:06 95

原创 Java面试--Java多线程并发(三)长文全解析 Java锁

Java锁1.乐观锁乐观锁是认为读多写少,遇到并发的可能性低,所以去拿数据的时候都认为别人不会修改,所以不会上锁。但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,采取在写时先读出当前版本号,然后加锁的操作。比较和上一次的版本号,如果一样就更新,不一样就重复读--比较--写。java中的乐观锁基本都是通过CAS操作实现的,CAS是一种更新的原子操作,比较当前值跟传入值是否一样,一样则更新,否则失败。2.悲观锁悲观锁就是悲观思想,认为写多读少,遇到并发的可能性高,每次去拿数据

2020-10-28 17:07:49 122

原创 Java面试--Java多线程并发(一)长文全解析

1.Java并发知识库2.Java线程实现/创建方式2.1 继承Thread类。Thread类本质上是实现了Runnable接口的一个实例,代表一个线程的实例,启动线程的唯一方法就是通过Thread类的start()实例方法。start()方法是一个native方法,它将启动一个新线程,并执行run()方法。什么是native方法public class MyTread extends Thread{ public void run(){ sout(...

2020-10-27 16:43:57 120

原创 Java面试--Java集合--List、Set、Map全解析

不负责基础,仅仅是面试出现的考点1.接口继承关系和实现1.Collection是集合List、set、queue最基本的接口。2.Iterator 迭代器,可以通过迭代器遍历集合中的数据。3.Map 映射表的基础接口。特点:只要是List,都是有序可重复的,ArrayList和Vector底层是数组,速度快,增删慢,区别是ArrayList线程不安全,容量不够时,扩容*1.5+1,而Vector线程安全(因为synchronized修饰了)。LinkedList 有序可重复,底层

2020-10-26 20:22:03 151

原创 Java面试--Spring--Spring原理及特点,IOC和AOP全解析

Spring特点1.轻量级2.控制反转3.面向切面4.容器5.框架集合Spring核心组件:Spring核心容器: 核心容器提供Spring框架的基本功能,核心容器的主要组件时BeanFactory,它是工厂模式的实现,BeanFactory使用控制反转IOC模式将应用程序的配置和依赖性规范与实际的应用代码分开。Spring Context:SpringContext是一个配置文件,向Spring框架提供上下文信息,SpringContext包括企业业...

2020-10-25 21:49:11 441

原创 Java基础知识--Java之IO/NIO

Java IO/NIO阻塞IO模型最传统的一种IO模型,即在读写过程中会发生阻塞现象,当用户线程发出IO请求之后,内核会去查看数据是否就绪,如果没有就绪就会等待数据就绪,而用户线程就会处于阻塞状态,用户线程交出CPU。当数据就绪之后,内核会将数据拷贝到用户线程。用户线程才解除block状态,典型的阻塞IO模型的例子为:data = socket.read();如果数据没有就绪,就会一直阻塞在read方法。非阻塞IO模型当用户线程发起一个read操作后,并不需要等待,而是马上就得到了一个结果,如

2020-10-25 10:45:06 133

原创 Java基础- Java中引用类型--java四种引用类型

Java中四种引用类型强引用Java中最常见的就是强引用,把一个对象赋给一个引用变量,这个引用变量就是一个强引用。当一个对象被强引用变量引用时,它处于可达状态,它是不可能被垃圾回收机制回收的。即使该对象以后永远不会被用到,Jvm也不会回收。弱引用软引用需要用SoftReference类来实现。内存足够使它不会被回收,内存空间不足时会被回收软引用需要用WeakReference类来实现,比软引用的生存期更短,对于只有弱引用的对象来说,只要垃圾回收机制一运行,不过JVM内存够不够,总会回收它。虚引

2020-10-21 21:34:30 121

原创 Java面试--JVM一文全整理

从JVM开始说起:JVM是一个虚拟机,可运行java代码的虚拟计算机,包括一套字节码指令集,一组寄存器,一个栈,一个垃圾回收,堆和一个存储方法域。JVM是运行在操作系统之上的,它与硬件没有直接的交互。线程JVM内存区域...

2020-10-20 20:57:06 172

原创 三次握手和四次握手 区别

三次握手如图所示首先,客户端处于Closed状态,服务端处于Listen状态。客户端发送SYN=1,意思是我客户端要请求建立联机了。 seq=x为 seq number=12345随机产生的数据包。此时,客户端状态从Closed 变成SYN_SEND服务端 ACK 意思是,我服务端收到了,SYN=1,向你发送,我也要联机了,seq = y 同上,也是自己产生的随机数据包,ack=x+1 为在上一次发送过来的seq加一,发送回去,此时,服务端的状态从LISTEN变成SYN_RCVD。客户端ACK

2020-10-08 14:27:58 876

原创 秋招 网络 Cookie和Session的区别

前言:Http协议是无状态的协议。 无状态:每次http请求都会返回相同的信息,每一次的请求都是相互独立的。所以服务端需要记录用户的状态时,就需要用某种机制来识别具体的用户,这个机制就是Session。比如购物车,当你点击下单按钮的时候,由于HTTP协议是无状态的,所以并不知道是哪个用户操作的,所以服务端为特定的用户创建了特定的Session,用户标识这个用户,并且跟踪用户,这样才知道购物车里有几本书。这个Session是保存在服务端的,有一个唯一标识,在服务端保存Session的方法有很多,内

2020-10-08 14:04:05 100

原创 秋招 HashMap 知识点

1.HashMap数据结构hashmap的数据结构:数组+链表或红黑树。当链表长度大于8时,转成红黑树。数组的特点:查询效率高,插入、删除效率低。链表的特点:查询效率低,插入、删除效率高。先根据hashcode放入数组,如果有冲突,就会在数组下方添加链表。链表长度大于8时,会转成红黑树O(logn)。为什么...

2020-09-28 20:27:34 109

原创 秋招-工作-Java基础

Java校招。以此记录学习的知识点,每日看,坚持更新。1. JDK 和 JRE 有什么区别?JDK 其实包含了 JRE,同时还包含了编译 java 源码的编译器 javac,还包含了很多 java 程序调试和分析的工具。简单来说:如果你需要运行 java 程序,只需安装 JRE 就可以了,如果你需要编写 java 程序,需要安装 JDK。2.Java中堆和栈的区别栈:栈内存是一片内存区域,存储的是局部变量。方法先进栈,然后再定义变量,变量有自己的作用域。一旦离开作用域,变量就会被释放,栈内存的更

2020-09-26 15:17:00 112

原创 运筹学:线性规划和非线性规划

运筹学:线性规划和非线性规划一 线性规划:二 非线性规划:一 线性规划:先根据问题要达到的目标选取适当的变量,使问题的目标通过用变量的函数形式表示(称为目标函数),对问题的限制条件用有关变量的等式或不等式表达(称为约束条件)。当变量连续取值,且目标函数和约束条件均为线性时,称这类模型为线性规划的模型。数学模型:(1)列出约束条件及目标函数(2)画出约束条件所表示的可行域(3)在可行域内...

2019-03-19 09:31:38 4160 1

原创 PyCharm,pip安装包的时候超时

昨晚安装PyGame包的时候出错,原因是超时。然后发现pip包不是最新的,(现在已经更新到18.1了)更新一下pip包就行了如果还不行,换源地址www.pygame.org就OK了...

2018-11-01 10:50:23 3767

原创 CentOS7下静态ip地址分配(Hadoop集群搭建)

操作系统是CentOS在搭建Hadoop过程中,发现每一次启动虚拟机,ip地址就会变化。这是由于一开始安装CentOS的时候,有一个自动连接以太网,他会自动给你分配ip地址,但是我们往往需要的是另一个。首先看我的主机映射,可以看到131,132,133 对应是,主机,从机,从机 的ip首先你要确定好,hostname的名称是否正确0.查看你的hostname输入命令[root@h...

2018-10-17 23:10:14 1432

原创 Python遍历数组的方法

Python中遍历数组的方法,第一种通过for循环来遍历数组class Test(): a = ["Albert","Mike",123,'c'] for i in a: print (i) 第二种方法我们先获取数组的长度,然后根据索引号遍历数组class Test(): a = ["Albert","Mike",123,...

2018-10-05 20:52:02 8561

原创 Python中Range,len方法实例

今天刷LeetCode的时候突然脑子抽了,关于数组的len和range怎么用就脑子混了。用博客记录下,帮助以后自己回忆。Python len()方法len 方法返回对象(字符,列表,元组)长度或者项目个数语法len (s)返回对象长度实例class Test(): li = [1,2,3,4,5] print(len(li))Python range() 函数...

2018-10-05 20:46:24 3555

原创 LeetCode有效的括号(Python)

**题目:**给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"输出: false示例 4...

2018-09-29 11:40:46 443

原创 LeetCode最长公共前缀(Python)

题目:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [&quot;flower&quot;,&quot;flow&quot;,&quot;flight&quot;]输出: &quot;fl&quot;示例 2:输入: [&quot;dog&quot;,&quot;racecar&quot;,&quot;car&quot;]

2018-09-22 21:24:30 177

原创 LeetCode回文数(Python)

LeetCode回文数(Python)题目 :判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读,...

2018-09-22 21:17:43 367

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除