自己经验有限,篇幅也有限,这里只是记录一些比较容易混淆或有难度和一些易忘的技术知识点,里面有一些也是面试阿里经常会被问到的问题,但是不保证答案全部正确,有错误的地方望大家指正 JVM相关 JVM内存是如何分配的 步骤其实很简单: 读取文件 排序 这里直接提供代码,分别是jdk 1.7和jdk 1.8的2个版本 1.7: import java.io.*; import java.util.*; import ; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; public class Main 乍一看这问题不要太简单,但是我挺佩服问这问题的面试官的,这问题向后衍生无论是广度还是深度都无可挑剔。
Java的每个对象中都有一个锁(monitor,也可以成为监视器) 并且wait(),notify()等方法用于等待对象的锁或者通知其他线程对象的监视器可用。 在Java的线程中并没有可供任何对象使用的锁和同步器。 这就是为什么这些方法是Object类的一部分,这样Java的每一个类都有用于线程间通信的基本方法 volatile关键字在Java中有什么作用?
参考链接: 使用Java计算文本文件txt中的行数/单词数/字符数和段落数 基础 1. String是基础数据类型么? 不是,String是一个类 而java的8大基本数据类型分别是: 逻辑类 boolean 文本类 char 整数类 byte, short, int, long 浮点类 double, float。
所有的 Java虚拟机实例必须在每个类或接口被 Java程序“首次主动使用”时才初始化它们。 如果你经常参加面试,一定会被问到这个 Map实现类,这个 Map实现类是在 jdk1.5中加入的,其在 jdk1.6/1.7中的主要实现原理是 segment段锁,而每个Segment 都继承了 ReentrantLock 八、java -> class -> 执行 ---- Java程序运行时,必须经过编译和运行两个步骤。首先将后缀名为.java的源文件进行编译,最终生成后缀名为.class的字节码文件。 Java.lang.ClassNotFoundException Java.lang.NoSuchMetodException Java.io.IOException Exception:一般分为 Checked 【1】Checked 异常:只有 java语言提供了 Checked异常,Java 认为 Checked异常都是可以被处理的异常,所以 Java程序必须显示处理 Checked异常。
这个div上的class属性是动态绑定到color,当我们在控制台把color改为 blue,内容颜色也会变成blue
Java基础部分 1.1 Java中的方法覆盖(Overwrite)和方法重载(Overloading)是什么意思? l 自定义类继承Thread类方式 l 自定义类实现Runnable接口方式 1.4 Java集合框架的基本接口有哪些? 1.6 Java中的两种异常类型是什么? Error:称为错误,由java虚拟机生成并抛出,包括动态链接失败,虚拟机错误等,程序对其不做处理。 1.8 Java中如何实现序列化,有什么意义? 序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。
本系列是《玩转机器学习教程》一个整理的视频笔记。本小节主要介绍多元线性回归以及其正规方程。
最后,还可以跟面试官装个 x ,生产数据,不建议进行物理删除记录。 8、为什么 SELECT COUNT(*) FROM table 在 InnoDB 比 MyISAM 慢? Java面试百分百.jpg
【1】完全基于内存,绝大部分请求是纯粹的内存操作,非常快速。数据存在内存中。 【2】数据结构简单,对数据操作也简单,Redis中的数据结构是专门进行设计的。 【3】采用单线程,避免不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗CPU,不用去考虑各种锁的问题,不存在加锁释放锁操作,没有因为可能出现死锁而导致的性能消耗。 【4】使用多路IO复用模型,非阻塞IO。利用epoll可以同时监察多个流的 IO事件的能力,在空闲的时候,会把当前线程阻塞掉,当有一个或多个流有 IO事件时,就从阻塞态中唤醒,epoll就轮询哪些真正发生了事件的流,并且只依次顺序的处理就绪的流,这种做法就避免了大量的无用操作。多路指的是多个网络连接,“复用”指的是复用同一个线程。
前端控制器(DispatcherServlet)将渲染后的结果返回 5、谈谈你对java中集合的理解, 具体实现类有什么特点? 集合分为单例集合和双列集合, 如下是他们的继承接口。 它们都是 Java 中表示集合的接口 List,单列数据集合,允许重复对象,有序(保持插入顺序) Set,单列数据集合,不允许重复对象,有没有序与实现有关,例如 LinkedHashSet
(可以看看面试官还想问那些点) 3、项目中使用缓存了吗?比如缓存雪崩怎么解决的? 使用了redis进行缓存处理。 13、Java中如何实现序列化,有什么意义? java 对象在程序结束后就消失了,它所包含的数据信息就会丢失,另外,一个 jvm 中的 java 对象,并不能被其它 jvm 所直接使用。 序列化可以将 java 对象变成字节流,而字节流可以存入磁盘文件,实现对象持久化保持,将来可以通过反序列化再将字节流还原为 java 对象 。 java 对象。 Java面试百分百.jpg
基础篇 基本功 面向对象的特征 final, finally, finalize 的区别 int 和 Integer 有什么区别 重载和重写的区别 抽象类和接口有什么区别 说说反射的用途及实现 说说自定义注解的场景及实现 HTTP 请求的 GET 与 POST 方式的区别 session 与 cookie 区别 session 分布式处理 JDBC 流程 MVC 设计思想 equals 与 == 的区别 集合 List 和 Set 区别 List 和 Map 区别 Arraylist 与 LinkedLis
经典的Java基础面试题 ________________________________________________________________________________________ ___ 1.问题:Java的”一次编写,处处运行”是如何实现的? 答案:Java程序会被编译成字节码组成的class文件,这些字节码可以运行在任何平台,因此Java是平台独立的。 Java环境可见。 答案:Java虚拟机是能移植到不同硬件平台上的软件系统。 9.问题:所有类的父类是什么? 答案:Object. 10. 问题:Java的基本类型有哪些?
公平锁:是指多个线程按照申请锁的顺序来获取锁,有点先来后到的意思。在并发环境中,每个线程在获取锁时会先查看此锁维护的队列,如果为空,或者当前线程是等待队列的第一个,就占有锁,否则就会加入到等待队列中,以后会按照 FIFO 的规则从队列中取到自己。 非公平锁:指多个线程获取锁的顺序并不是按照申请锁的顺序,上来就尝试占有锁,如果尝试失败,就再采用类似公平锁的方式获取锁。有可能后申请的线程比先申请的线程优先获取锁,在高并发的情况下,有可能会造成优先级反转或者饥饿现象。
首先synchronized是java内置关键字,在jvm层面,Lock是个java类; synchronized无法判断是否获取锁的状态,Lock可以判断是否获取到锁; synchronized会自动释放锁 但后续步骤不是直接对可回收对象进行清理,而是让所有存活的对象都向一端移动,然后直接清理掉端边界以外的内存 4.分代收集算法,“分代收集”(Generational Collection)算法,把Java Java面试百分百.jpg
Java 集合 1. 推荐阅读:《Java 8系列之重新认识HashMap》 注:本块内容后期再做整理修改 9. 并发环境下推荐使用 ConcurrentHashMap 推荐阅读:疫苗:Java HashMap的死循环 11. ConcurrentHashMap 和 Hashtable 的区别 后期补上 12.
请求来自于前端的web服务器,这可能是 Apache, IIS, Nginx等; 【2】Tomcat 作为独立服务器:请求来自于web浏览器; Tomcat 的工作一般分为三种: 【1】**bio:**传统的Java
一、MyBatis 与 JDBC 的区别 ---- 【1】JDBC 是 Java 提供操作数据库的 API;MyBatis 是一个持久层 ORM 框架,底层是对 JDBC 的封装。 Mybatis 会自动将 Java 对象映射至 SQL语句(比如查询的时候,用户输入了什么参数就是用什么作为条件,没输入的参数就应当过滤掉等)。 > </set> where id=#{id} </update> 【3】choose、when 和 otherwise 标签:选择其中的一个查询条件,一个满足即可,类似于 Java
JAVA NIO的核心在于:通道(Channel)和缓冲区(Buffer)。通道表示打开 IO 设备(例如:文件、套接字)的连接。 在 Java 7 中引入了 NIO 的改进版 NIO2,它是异步非阻塞的IO模型。 ChannelInboundHandlerAdapter 与 SimpleChannelInboundHandler 的区别 ---- 【博客连接】:链接 本文来源程序猿进阶,由javajgs_com转载发布,观点不代表Java
Java面试百分百.jpg