自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 Shell命令行参数接受通配符

Linux系统的Shell会自动对*通配符进行处理

2022-12-28 20:27:41 241 1

原创 JAVA中的char和boolean到底占几个字节?

对于JAVA中的大部分数据类型,书中都有明确的表示:byte:1字节,short:2字节,int:4字节,long:8字节float:4字节,double:8字节。然而对于boolean和char,却写的不太清除。Boolean1.JVM没有提供booolean类型专用的字节码指令,而是使用int相关指令来代替。2.对boolean数组的访问与修改,会共用byte数组的baload和bastore指令。实际上,大多数对于boolean、byte、short和char类型数

2022-04-03 12:02:10 1090

原创 JVM常见面试题

1. 说一下JVM的内存结构JVM在运行的时候在对所管理的内存空间划分了不同的区域,有些是线程私有的,有些是线程共享的。线程私有的有1.程序计数器,指示了当前线程执行的字节码的行号。字节码解释器通过改变程序计数器的值来选取下一条执行的指令。这个区域是唯一不会发生OOM的区域。2.虚拟机栈,由栈帧构成,每一个栈帧包括一个方法执行需要的内存,每次方法调用会有一个栈帧入栈,方法返回会从栈顶出栈。栈帧里面存储方法参数,局部变量表(基本类型的局部变量值,和对象的引用值),方法的返回地址

2022-03-09 00:11:06 465

原创 Spring Boot及SSM框架的面试问题

SpringBootSpringBoot的核心理念是Convention Over Configuration, 对于web开发中的各种繁琐的配置做了惯例的配置。1.能够快速搭建项目,简化了Spring的使用难度。2.避免大量的Maven导入和各种版本冲突,做到了统一的版本控制。SpringSpring的核心是IOC, Inversion of control,控制反转,是一种面向对象的程序设计思想。复杂系统中的各种对象之间的耦合关系非常复杂,难以维护。IOC的思想是让IOC容器

2022-03-07 21:25:53 268

原创 JAVA IO

Stream包括字符流(Reader, Writer),字节流(InputStream, OutputStream).前者的操作经过缓冲区再操作文件, 后者直接操作文件。BIO同步阻塞IO, NIO出现之前主要使用BIO以及新建线程的方式解决并发请求。下面是BIO的经典编程模型while循环不断调用accpet, 阻塞式的获取建立的连接,当方法返回时,创建新线程对socket进行处理。适用于连接的数量不大时,比如单机1000以下。NIOJava NIO的三个核心组件:

2022-03-06 21:21:32 217

原创 JAVA 中的集合

1.Java中有哪些容器?Java中的集合主要有两个接口,Map 和 Collection。Collection接口的子接口有List, Set, Queue。常见的实现类:List: LinkedList, ArrayListSet:HashSet, TreeSet(继承于SortedSet接口)Queue: ArrayDeque(继承于Deque)Map: HashMap, HashTable, TreeMap(根据键的大小排序), LinkedHashMap(根据插入顺序排

2022-03-06 19:54:36 1591

原创 Java中的HashMap

Java中的HashMap的冲突解决方案是链表,当链表长度为8个时,转换为红黑树存储。红黑树的定义:1.结点是红色或黑色2.根节点和叶子节点是黑色3.红色结点的子结点是黑色4.任意结点到叶子节点的黑色结点个数相同特点:相比二叉树,最坏的查询复杂度log(n)相比AVL树,增删的耗时短,查询的耗时稍长。最长路径是最短路径的2n-1。为什么HashMap的加载因子是0.75?为什么HashMap的扩容长度是2的幂次方?为什么HashMap的链表长度为8时变

2022-03-04 22:27:47 447

原创 Redis的面试题

1.为什么使用Redis做缓存redis具有高性能和高并发的特点redis为什么具有高性能,或者说redis为什么快?1.首先redis的数据存在内存中,所以比存储磁盘上的数据库快。2.其次redis本身使用了高效的数据结构redis内部的基本数据类型有String , List, Set, Hash, Sorted Set底层的数据结构:键的数据结构String-简单动态字符串值的数据结构String - 简单动态字符串List - 双向链表/压缩列表Set

2022-03-03 21:54:07 1741

原创 计算机网络(中科大郑烇)学习笔记

第一章 提纲1.1什么是Internet具体构成角度:节点:主机(端系统)及其上运行的应用程序 , 路由器、交换机等网络交换设备边:通信链路:包括接入网链路(主机连接到互联网的链路)和主干链路(路由器间的链路)协议:协议控制发送、接收消息协议定义了两个通信实体之间交换报文的格式和次序,以及在报文传输和接受和其他事件所采取的动作。Internet是网络的网络,具有松散的结构,ISP互联。从服务角度使用通信设施进行通信的分布式应用。通信基础设施为app

2022-02-16 17:31:24 8195

原创 Java中的并发工具类

JUC并发工具包中提供了CountDownLatch, CyclicBarier, Semaphore作为并发流程控制的手段。CountDownLatchCountDownLatch允许一个或多个线程等待其他线程完成操作。在CountDownLatch之前,通常使用join()方法实现等待其他线程的操作。t1.join();t1.join()中实现等待的逻辑为 while (isAlive()) { wait(0);

2022-02-14 19:13:06 287

原创 Java中的锁

Lock接口Java SE 5之后,并发包中提供了Lock接口。虽然它缺少了隐式获取,释放锁的便捷性,但是拥有了锁获取与释放的可操作性,可中断的获取锁,以及超时获取锁等同步特性。Note:在finally块中释放锁,目的是保证在获取到锁之后,最终能够被释放。不要将获取锁的过程写在try块中,因为如果在获取锁(自定义锁的实现)时发生了异常, 异常抛出的同时,也会导致锁无故释放。队列同步器(AQS)队列同步器,AbstractQueuedSynchronizer是用来构建锁和其他

2022-02-12 18:28:12 508

原创 java Synchronized的底层原理

CAS操作AtomicInteger类中的所有原子性方法调用了sun.misc.Unsafe 类中的方法Unsafe类中的方法通过自旋CAS实现,调用 native方法compareAndSwapIntcompareAndSwapInt作为native方法,由hotspot虚拟机的C++源码实现,最后到汇编码是一条LOCK_IF_MP cmpxchg 指令,若为多核处理器则加锁,保障原子性java对象的内存布局通过JOL观察对象的内存布局 Obje

2022-02-07 18:08:37 430

原创 volatile五层实现

2022-02-07 10:45:58 315

原创 JAVA CAS方法的原理

JAVA中的类似CAS的方法如AtomicInteger.getAndIncrement方法调用了Unsafe.getAndAddInt,再调用了Unsafe中的native方法compareAndSwapInt,由C++实现,最终的指令是 LOCK_IF_MP + cmpxchgl,cmpxchgl指令本身不是原子性的。在单核CPU中, 能够在一个指令中完成的操作都可以看作为原子操作, 因为中断只发生在指令间。所以在单核CPU中cmpxchgl不需要加锁...

2022-02-04 10:19:25 799

原创 JAVA注解机制

本质:注解默认继承Annotation接口属性:接口中定义的成员方法getXXX()要求:1.属性的返回值类型:基本数据类型,String, 注解,枚举,以上类型的数组2.定义了属性时,使用注释需要对属性进行赋值,元注解:描述注解的注解@Target:注解作用的位置@Retention:注解被保留的阶段@Documented:注解是否被抽取到API@Inherited:注解是否被子类继承解析注解:1.获取注解标注的对象(class,method,field

2022-01-17 22:06:18 218

原创 String, StringBuffer, StringBuilder的关系

2022-01-17 22:05:50 229

原创 Servlet的生命周期

2022-01-17 19:23:01 141

原创 Rest API是什么?

Rest是 representational state trasfer,代表一种standardized software architecture styleRestAPI是一类用于client-server通信的APIRestful Service是使用RestAPI进行通信的web serviceRestAPI优势:1.Simple/Standard通信方式的简易标准化(不需要手动格式化request和data)2.scalable/stateless可以进行se

2022-01-16 19:21:02 1169

原创 Lambda表达式自由变量(变量作用域)的原理

Lambda表达式能捕捉表达式之外的(实际最终变量)变量。Lambda表达式对于自由变量的规则和匿名类一样,自由变量的值被复制进来,所以只能传入最终变量,否则将会处理过期的变量值

2022-01-16 16:31:18 356

原创 Integer++问题

Integer 对象是不可变的: 包含在包装器中的内容不会改变: 不能使用这些包 装器类创建修改数值参数的方法。所以Integer a = ArrayList<Integer> intList.get(0);a++;并不会修改list中的数值

2021-12-23 20:21:33 566

原创 【无标题】

问题无法找到Users类的无参构造器org.springframework.beans.BeanInstantiationException: Failed to instantiate [cn.itcast.jdbc.JDBCTemplate2$Users]: No default constructor found; nested exception is java.lang.NoSuchMethodException: cn.itcast.jdbc.JDBCTemplate2$Users.&l

2021-12-20 14:59:38 282

空空如也

空空如也

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

TA关注的人

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