2021
10-12
10-12
每日几道java新手入门面试题,通往自由的道路
目录1、请你说一下什么是面向对象?2、请你简述一下面向对象的三个基本特征?3、为什么说Java是一种半解释半编译的程序设计语言呢?4、请你说一下Java中的8大基本类型是那些?5、请你讲讲抽象类和接口有什么区别?6、请判断当一个对象被当作参数传递给一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?7、请你说一下JVM/JRE/JDK的区别?8、请你说一下方法重载和方法重写...
继续阅读 >
目录1.你知道volatile是如何保证可见性吗?小结:2.悲观锁和乐观锁可以讲下你的理解吗?3.你还知道什么其他的锁吗?总结1.你知道volatile是如何保证可见性吗?我们先看一组代码:publicclassVolatileVisibleDemo{publicstaticbooleaninitFlag=false;publicstaticvoidmain(String[]args){newThread(newRunnable(){@Overridepublicvoidrun(){System...
目录1.你知道JVM内存模型吗?2.你知道重排序是什么吗?3.happens-before是什么,和as-if-serial有什么区别总结1.你知道JVM内存模型吗?在Java的并发中采用的就是JVM内存共享模型即JMM(JavaMemoryModel),它其实是是JVM规范中所定义的一种内存模型,跟计算机的CPU缓存内存模型类似,是基于CPU缓存内存模型来建立的,Java内存模型是标准化的,屏蔽掉了底层不同计算机的区别。那我们先来讲下计算机的内存模型:其实早期计算机...
目录1.你知道线程安全问题吗?2.那如何解决线程安全问题呢?3.那你讲下死锁是什么吧?总结1.你知道线程安全问题吗?线程安全问题:一般指在多线程模式下,多个线程对同一个共享数据进行操作时,第一个线程还没来得及更新共享数据,从而导致另外一个线程没得到最新的数据,并更新数据,从而产生线程安全问题。比较常见的场景有买票。我举个例子吧:需求:比如买周杰伦演唱会的门票,此时有三个窗口同时卖总共100张票。窗口就是...
目录1.你知道线程池吗?为什么需要使用线程池?小结:2.你知道有多少种创建线程池的方式3.线程池的五种状态你有了解吗?4.你知道ThreadPoolExecutor的构造方法和参数吗5.你可以说下线程池的执行过程原理吗6.能否写一个简单线程池的demo?总结1.你知道线程池吗?为什么需要使用线程池?在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。而在Java中,JVM中每创建和销毁线程...
目录1.你可以讲下进程与线程的区别?为什么要用多线程?2.什么是上下文切换?3.说说你知道的几种创建线程的方式4.昨天你讲到创建线程后使用start方法去调用线程,为什么run方法不行呢?有什么区别?5.你知道你开启一个线程后,它的状态有那些吗?6.既然讲到超时方法,那你讲下sleep和wait的区别和他们需要怎样唤醒总结:1.你可以讲下进程与线程的区别?为什么要用多线程?进程:进程是程序的一次执行过程,是系统运行...
目录1.JVM是如何判断对象是否可回收2.你知道有什么垃圾回收的常见算法吗?3.你知道有什么垃圾收集器吗?4.那你知道什么时候才会触发FullGC5.JVM中四种引用你有了解过吗?6.说说你知道的几种主要的JVM参数1.堆设置2.收集器设置3.并行收集器设置4.并发收集器设置5.JVM调优的参数总结1.JVM是如何判断对象是否可回收垃圾收集器在做垃圾回收的时候,首先需要判断一个对象是存活状态还是死亡状态,死亡的对象将会被标识为垃圾数...
目录1.你可以讲下你对String类有什么其他的了解吗?2.==和equals的区别3.Strings=newString(“nz”)创建了几个字符串对象?4.你可以讲下JVM的运行时数据区或者说内存结构吗?5.类加载过程6.而其中类加载器是什么,那有哪些呢?总结1.你可以讲下你对String类有什么其他的了解吗?在看String的源码过程中,可以发现String内部实际存储结构为char数组,在String中有几个比较重要的构造函数://默认的无参构造pub...
目录创建项目前的环境搭建简介特点(开始)创建Maven项目,导入依赖创建一个新的Maven项目(开始)在数据库中创建表创建表详细信息从XML中构建SqlSessionFactory总结:创建项目前的环境搭建本篇使用工具:1、JDK:jdk1.82、Mysqll数据库:mysql-5.7.31-winx643、Maven开发工具:apache-maven-3.8.14、IDEA开发工具:IntelliJIDEA2020.1.3x64在这里我们使用MyBatis开发一个简单的Java项目完成增删改查(默认你已安装JDK...
雪花算法(SnowFlake)雪花算法是Twitter开源的分布式ID生成算法.主要是由64bit的long型生成的全局ID,引入了时间戳和ID保持自增的属性.64bit分为四个部分:第一个部分是1bit,这不使用,没有意义;第二个部分是41bit,组成时间戳;第三个部分是10bit,工作机器ID,里面分为两个部分,5个bit是的是机房号,代表最多有25即32个机房,5个bit是指机器的ID,代表最多有25个机器,即32个机器.第四部分是12bit,代表是同一个毫秒类产生不同的ID,区分...
目录一、线程初步认识1、什么是线程2、Java本身就是多线程3、为什么要使用多线程4、线程的优先级5、线程的状态6、Daemon线程二、线程启动和终止1、构造线程2、什么是线程中断3、suspend()、resume()和stop()4、正确的终止线程总结:简介:线程是操作系统调度的最小单元,在多核环境中,多个线程能同时执行,如果运用得当,能显著的提升程序的性能。一、线程初步认识1、什么是线程操作系统运行一个程序会为其启动一个进程。例如,启...
目录io学习框架:文件:Io流的原理:节点流和处理流:BufferWriter:处理字节的处理流:标准输入和输出:转换流:打印流:Properties类:总结io学习框架:文件:保存数据的地方。1)常见文件对象的相关构造器和方法:当进行Filefile=newFile(filePath);只是在内存上有一个文件对象;只有file.createNewFile();才会在磁盘创建文件获取文件的相关信息:utf8中,一个汉字是三个字节,所以当用字节流的read()方法一个字节一个字节的...
目录1、简介2、JDK1.8ConcurrentHashMap结构图3、成员属性4、静态属性5、静态代码块6、内部类6.1Node节点6.2ForwardingNode节点6.3TreeNode节点7、构造方法8、总结1、简介ConcurrentHashMap是HashMap的线程安全版本,内部也是使用(数组+链表+红黑树)的结构来存储元素。相比于同样线程安全的HashTable来说,效率等各方面都有极大地提高。在学习ConcurrentHashMap源码之前,这里默认大家已经读过HashMap源码,了解LongAdde...
目录一、定义方式二、内存三、字符串比较相等四、字符串常量池五、理解字符串不可变六、字符、字节、字符串七、字符串的常见操作八、StringBuffer和StringBuilder(1)append方法(2)注意(3)区别九.总结今天带大家了解一下java的基础法语---String字符串是我们以后工作中非常常用到的类型.使用起来都非常简单方便,我们一定要使用熟练。那么C语言中是否有字符串类型?答案是“没有”!!char*p="hello";那么p的类...