- 博客(16)
- 收藏
- 关注

原创 java面试题+答案-容器(面试必备)
java 容器都有哪些?Collection 和 Collections 有什么区别?(1) Collection是Java集合框架中的基本接口;(2) Collections是Java集合框架提供的一个工具类,其中包含了大量用于操作或返回集合的静态方法。List、Set、Map 之间的区别是什么?HashMap 和 Hashtable 有什么区别?HashTable和HashMap的区别详解如何决定使用 HashMap 还是 TreeMap?TreeMap<K,V>的.
2020-12-01 14:11:24
223

原创 java面试题+答案-JAVA基础(面试必备)
一.JAVA基础1.JDK 和 JRE 有什么区别?JRE是Java 运行时环境不能用于创建新程序。JDK是Java 开发工具包,JDK包含了JRE,它能够创建和编译程序,是提供给程序员使用的。2.== 和 equals 的区别是什么?Object对象里面的==和equals没有什么区别,但是在String重写,:String中的equals方法其实比较的是字符串的内容是否一样。3.两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?不一定!类的hashCode
2020-08-19 11:31:38
186
原创 4_2垃圾收集算法
垃圾收集算法GC算法网上已经有一大堆了,相信很多人已经看了至少2~3遍,在这里简单的过一遍。1.GC算法有哪些?各有什么优缺点?1.1 标记-清除 算法算法分为两个阶段,先标记,后清除。先将不可回收对象进行标记,剩下的那些需要回收的统一清除。算法简单,缺点是会产生内存碎片。1.2 复制算法将内存分为两块,每次使用其中的一块,当内存不足时,将存活的对象复制到另一块内存中去,剩下的直接清除。回收后内存时连续的,缺点是会浪费一些内存,因为每次只使用其中的一块。1.3 标记-整理 算法类似标
2022-04-27 14:32:16
412
原创 4_1 JVM内存结构
借用JavaGuide哥的两张图JDK 1.8 之前:JDK 1.81. JVM 内存结构描述1.1程序计数器程序计数器中只存储当前线程执行程序的行号,一个类指针的数据结构。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。我们熟悉的分支操作、循环操作、跳转、异常处理和线程恢复等基础模型都需要依赖这个计数器来完成。JVM的多线程是通过CPU时间片轮转来实现的,某个线程在执行的过程中可能会因为时间片耗尽而挂起。当它再次获取时间片时,需要从挂起的地方继续执行。在J
2022-04-27 13:22:50
153
转载 3_深入分析Synchronized原理
记得开始学习Java的时候,一遇到多线程情况就使用synchronized,相对于当时的我们来说synchronized是这么的神奇而又强大,那个时候我们赋予它一个名字“同步”,也成为了我们解决多线程情况的百试不爽的良药。但是,随着学习的进行我们知道在JDK1.5之前synchronized是一个重量级锁,相对于Lock,它会显得那么笨重,以至于我们认为它不是那么的高效而慢慢摒弃它。不过,随着Javs SE 1.6对synchronized进行的各种优化后,synchronized并不会显得那么重了。下面
2022-04-26 15:56:10
180
原创 2_java 8 新特性
当面试官让说几个java8新特性的时候了解的可能还能说两句,不了解的只会一脸懵逼,主要原因在于不常使用所以很难接触到近而了解它。1.接口默认方法通过default 关键字可以为接口中的方法提供默认实现(通常情况接口方法中只能有接口,不能实现):public interface Java8NewFeature { default int getNewNum(int num) { return 2 * num; }}public static void main(St
2022-04-25 16:58:53
157
原创 1_JAVA类加载过程
1.类加载过程大致过程如图所示类的加载过程主要分为:加载、连接、初始化,其中连接又分为:验证、准备、解析1.1 加载通过全类名获取定义此类的二进制字节流将字节流所代表的静态存储结构转换为方法区的运行时数据结构在内存中生成一个代表该类的 Class 对象,作为方法区这些数据的访问入口加载.class文件的方式:从本地系统中直接加载、通过网络下载.class文件、从zip,jar等归档文件中加载.class文件、从专有数据库中提取.class文件、将Java源文件动态编译为.class文件等。
2022-04-25 16:00:37
464
原创 手写SpringMvc框架
RestController接口类package org.springmvc;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;@Target(ElementType.TYPE)@Retention(RetentionPolicy.
2020-11-26 17:14:07
131
原创 Web标准协议(TCP/IP和HTTP)
HTTP协议HTTP<超文本传输协议>的缩写。是用于从WWW服务器传输超文本到本地浏览器的传输协议.HTTP是一个应用层协议,由请求和响应构成,是一个标准的个客户端和服务器模型。HTTP协议的特点支持客户/服务器模式简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。灵活:HTTP允许传输任意类型的数据对象。正在传输的类型
2020-11-26 09:17:20
689
原创 数据库主从机备份策略
1.数据库冷备份说明:通过数据库工具,定期将数据库文件进行转储,保证数据的安全性. (一般2-3天)缺点:备份时由于突发的情况,可能导致备份失败.需要反复备份.由于冷备份是定期备份.所以可能导致数据的丢失.核心:数据必须备份.备份的数据是恢复的最后有效的手段2.数据库热备份说明:可以通过数据库机制,自动的实现数据的备份操作.优点: 可以实现自动化的操作,并且是实时备份.备份实现原理:当数据库主机的数据发现变化时,会将修改的数据写入二进制日志文件中.从库通过IO线程,读取主库的二
2020-11-25 20:18:32
605
原创 Redis基础知识笔记+总结
Redis 是内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件速度快1.Redis支持的数据类型(字符串)string(散列)hash(列表)list(集合)set(有序集合)sort set2.Redis服务2.1.启动redis-server redis.conf(进入根目录)2.2.检查redis服务项ps -ef |grep redis2.3.进入Redis客户端redis-cli -p 63792.4.关闭Redis客户端1)redis-cli -p
2020-11-12 14:53:01
126
原创 TCP的三次握手四次挥手(面试题)
1.三次握手原理:1)发送端首先发送一个带有SYN(synchronize)标志地数据包给接收方。2)接收方接收后,回传一个带有SYN/ACK标志的数据包传递确认信息,表示我收到了。3)最后,发送方再回传一个带有ACK标志的数据包,代表我知道了,表示’握手‘结束。理解:1)Client:嘿,李四,是我,听到了吗?2)Server:我听到了,你能听到我的吗?3)Client:好的,我们互相都能听到对方的话,我们的通信可以开始了。2.四次挥手原理:1)第一次挥手:Client发送一个FI
2020-11-10 08:47:41
1123
原创 面试题-单例设计模式
饿汉式class Mysingle{ private Mysingle() {}; static private Mysingle my = new Mysingle(); //公共访问点 static public Mysingle getMy() { return my; }}懒汉式(延迟加载+线程不安全)class Mysingle2{ private Mysingle2() {}; //延迟加载的思想! static private Mysingle2 my; sta
2020-08-19 14:07:41
185
原创 L1-063 吃鱼还是吃肉 (10 分) java
L1-063 吃鱼还是吃肉 (10 分)国家给出了 8 岁男宝宝的标准身高为 130 厘米、标准体重为 27 公斤;8 岁女宝宝的标准身高为 129 厘米、标准体重为 25 公斤。现在你要根据小宝宝的身高体重,给出补充营养的建议。输入格式:输入在第一行给出一个不超过 10 的正整数 N,随后 N 行,每行给出一位宝宝的身体数据:性别 身高 体重其中性别是 1 表示男生,0 表示女生。身...
2019-05-13 14:54:09
918
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人