自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java中的IO与NIO面试题

但是对于非阻塞 IO 就有一个非常严重的问题, 在 while 循环中需要不断地去询问内核数据是否就绪,这样会导致 CPU 占用率非常高,因此一般情况下很少使用 while 循环这种方式来读取数据。7、多路复用 IO 模型多路复用 IO 模型是目前使用得比较多的模型。 Java NIO 实际上就是多路复用 IO。在多路复用 IO模型中,会有一个线程不断去轮询多个socket 的状态,只有当 socket 真正有读写事件时,才真正调用实际的 IO 读写操作。因为在多路复用 IO 模型中,只需要使用一个.

2022-01-01 11:11:56 360

原创 java教程——反射,java面试技术难点

====在 java教程——反射(二)一节中我们讲过 拿到 Class 实例就可以拿到其字段,其实这节我们要讲的 获取其方法并调用是一样的。首先,我们得知道 如何通过 Class 实例获取 其方法。与 获取字段一样,四种方法。Method getMethod(name, Class…):获取某个public的Method(包括父类)Method getDeclaredMethod(name, Class…):获取当前类的某个Method(不包括父类)Method[] getMethods

2021-12-31 10:56:25 226

原创 Java并发编程底层实现原理(不了解这个不敢说懂并发),java校招面试问题大全及答案大全

关闭偏向锁延迟-XX:BiasedLockingStartupDelay=0关闭偏向锁 程序默认进入轻量级锁状态-XX:-UseBiasedLocking=false2.1.2 轻量级锁2.1.2.1 轻量级锁加锁线程在执行同步代码块之前,JVM会在当前线程的栈帧中创建用于存储锁记录的空间,并将对象头中Mark Word复制到锁记录中,官方称为Displaced Mark Word。然后线程尝试使用CAS将对象头中的Mark Word替换为指向锁记录的指针。如果成功,当前线程获得锁;如果失败,

2021-12-31 10:54:05 410

原创 java并发之Condition图解与原理剖析,mybatis面试题

}}/**获取元素操作@return@throws InterruptedException*/public E take() throws InterruptedException {lock.lock();try {// 当数组为空时,调用notEmpty.await();使得获取元素的线程阻塞while (count =《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》【docs.qq.com/doc/DSmxTbFJ1cm

2021-12-31 10:51:26 499

原创 Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day11,软件架构师书籍

面试题3:Mybatis中的#{}和${}有哪些区别正经回答:深入追问:追问1:什么是sql注入?追问2:mybatis是如何做到防止sql注入的?每日小结本栏目Java开发岗高频面试题主要出自以下各技术栈:Java基础知识、集合容器、并发编程、JVM、Spring全家桶、MyBatis等ORMapping框架、MySQL数据库、Redis缓存、RabbitMQ消息队列、Linux操作技巧等。面试题1:你怎么理解ORM框架,常见的ORM框架都有哪些?==..

2021-12-31 10:49:23 683

原创 java容器,java从入门到精通第四版答案

Set keySet = hashMap1.keySet();Iterator iterator = keySet.iterator();while(iterator.hasNext()){String key = iterator.next();System.out.println(key+"\t"+hashMap1.get(key));}System.out.println(“Java中自带的数据类型:相同的对象会覆盖!”);System.out.println("\n");//用户自

2021-12-31 10:46:52 114

原创 Java实现栈和队列,java排序算法面试

top = i;return result;}}栈的链式存储结构实现:public class LinkStack {//链栈的节点private class Node{E e;Node next;public Node(){}public Node(E e, Node next){this.e = e;this.next = next;}}private Node top; //栈顶元素private int size; //当前栈大小public LinkSta

2021-12-31 10:45:49 64

原创 Java毕业设计springboot旅游景点订票网站 毕业设计毕设源码毕业论文开题报告参考(5)数据库表

字段名类型备注idInt(11)自动递增;菜单的id(主键),不允许空xingmingvarchar(50)姓名dianhuavarchar(50)电话youxiangvarchar(50)邮箱zhutivarchar(250)主题neironglongtext内容riqidate日期shijiandatetime时间会员表:huiyuan字段名类型备注idint自动递增;菜单的id(主键),不允许空shoujivarchar手机号:用户名mimavarchar密码   x

2021-12-30 12:49:06 589

原创 Java方向如何准备BAT技术面试答案(汇总版),java实现视频直播

具体原理参考文章:http://www.cnblogs.com/ITtangtang/p/3948786.htmlhttp://ifeve.com/concurrenthashmap/20.Error、Exception区别#=====================Error类和Exception类的父类都是throwable类,他们的区别是:Error类一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢等。对于这类错误的导致的应用程序中断,仅靠程序本身无法恢复和和

2021-12-30 12:48:10 127

原创 Java异常面试题(含答案),java高级面试网站

编译时异常运行时异常2、异常的处理机制有几种?异常捕捉:try…catch…finally,异常抛出:throws。3、如何自定义一个异常继承一个异常类,通常是RumtimeException或者Exception4、try catch fifinally,try里有return,finally还执行么?执行,并且finally的执行早于try里面的return结论:1.不管有木有出现异常,finally块中代码都会执行;2.当try和catch中有return时,finally仍

2021-12-30 12:47:15 64

原创 java开发工程师—如何让你的简历脱颖而出?,Java通用流行框架大全

##3 描述项目经验的技巧之前已经提到过,招聘方非常注重候选人简历上相关技术项目经验,因为这至少能有效地证明候选人实践过相关技术,而不是只具有理论知识。具体而言,招聘方首先会看候选人最近半年的项目里用的是否是和本岗位相关的技术或框架,如果是,那么说明候选人能在入职后能直接上手干活。其次,会看候选人所有项目经历中和本岗位所用技能(或框架)一致时间年限,一般招聘方会对这个年限有个最低的标砖,当然越长越好。如果大家自己感觉项目经历明明很匹配但最终却连面试的机会都没,那么问题大多就出在这个环节,下面我们来具体

2021-12-30 12:46:19 154

原创 Java开发不懂Docker?学尽Java也枉然,Alibaba内部成长手册手把手带你玩转Docker容器世界

《Docker实战》的宗旨是向开发人员、系统管理员和混合技能的其他计算机用户,介绍Docker项目和Linux容器的概念。Docker和Linux都是开源的项目,有丰富的在线文档,但无论如何,入门仍是一项艰巨的任务。Docker是有史以来增长最快的开源项目之一,在其周围的生态系统也是以类似的速度不断发展。由于这些原因,本书的重点完全在于Docker的工具集。这一范围限定不仅能使内容选材更精准,帮助读者了解在她们的特有实例中如何应用Docker功能;一旦读者们牢牢把握住了本书涉及的基础知识,他们也能应对更大

2021-12-30 12:45:24 95

原创 Java并发编程之Java创建线程的三种方式,讲的真详细

1、继承Thread类2、实现Runnable接口3、使用Callable和Future创建线程下面讨论这三种方法的实现以及它们之间的比较。一、继承Thread类步骤:1、创建一个线程子类继承Thread类2、重写run() 方法,把需要线程执行的程序放入run方法,线程启动后方法里的程序就会运行2、创建该类的实例,并调用对象的start()方法启动线程示例代码如下:当运行main方法时,程序将执行run()方法的内容。执行后,线程将消失。为什么必须重写run()方法?单击方法的源代码时

2021-12-30 12:43:34 132

原创 Java并发工具类介绍,做Java程序员真的没有春天吗

4、Exchanger,用于两个线程之间的数据交换。介绍==1)CountDownLatchCountDownLatch,类似于计数器的方式,用于等待一个或多个线程执行完操作开始自身代码的执行。其构造函数接收一个int类型的整数作为计数器而使用,例如如果想等待N个线程执行完毕就传入N,当每调用一次countDown函数,表示某一个线程执行完毕。实际上,这个N并不《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》【docs.qq.com/doc/DSmxTb

2021-12-30 12:42:39 67

原创 Java工程师(2,mybatis架构设计层次

一面就做了一道算法题,要求两小时内完成,给了长度为N的有重复元素的数组,要求输出第10大的数。典型的TopK问题,快排算法搞定。算法题要注意的是合法性校验、边界条件以及异常的处理。另外,如果要写测试用例,一定要保证测试覆盖场景尽可能全。加上平时刷刷算法题,这种考核应该没问题的。二面自我介绍下呗开源项目贡献过代码么?(Dubbo提过一个打印accesslog的bug算么)目前在部门做什么,业务简单介绍下,内部有哪些系统,作用和交互过程说下Dubbo踩过哪些坑,分别是怎么解决的?(说

2021-12-30 12:41:43 249

原创 Java学习笔记——单元测试,面试必备

assertEquals(“这是错误信息2”,12,m.getArea(3,4));}}@Test注解的方法每个@Test对应一个方法,这个方法会被识别为一个测试方法一个测试类里面可以有多个@Test,但是每个@Test对应的测试方法只会被执行一次通常我们会在@Test测试方法中使用assertEquals断言语句,来判断方法是否能够正常运行并且输出我们希望的结果assertEquals(“错误信息”,期望结果,实际结果)当期望结果与实际结果不一致时,就会打印错误信息这是断言都

2021-12-30 12:40:48 239

原创 Java的堆,栈,mysqlfront连接教程

「小知识」网上的很多资料都称 : 基本数据和对象引用存储在栈中。当然这种说法虽然是正确的,但是很不严谨, 只能说这种说法针对的是局部变量。局部变量存储在局部变量表中,随着线程而生,线程而灭。并且线程间数据不共享。但是,如果是成员变量,或者定义在方法外对象的引用,它们存储在堆中。因为在堆中,是线程共享数据的,并且栈帧里的命名就已经清楚的划分了界限 : 局部变量表!本地方法栈本地方法栈(Native Method Stack)与虚拟机栈所发挥的作用是非常相似的,它们之间的区别不过是虚拟机栈为虚拟机执

2021-12-29 13:48:32 352

原创 Java的wait和notify学习三部曲之一:JVM源码分析,保洁阿姨看完都会了

线程C启动后,由于此时线程B持有锁,那么线程C此时在干啥?线程B在notify()的时候做了什么?线程B释放锁的时候做了什么?源码中最重要的注释信息在源码中有段注释堪称是整篇文章最重要的说明,请大家始终记住这段信息,处处都用得上:ObjectWaiter对象存在于WaitSet、EntryList、cxq等集合中,或者正在这些集合中移动原文如下:请务必记住这三个集合:WaitSet、EntryList、cxq好了,接下来看源码分析问题吧:线程A在wait()的时候做了什么..

2021-12-29 13:47:08 245

原创 Java的Io模型你了解多少?RPC的通信Netty-Netty的底层是Nio-

程序切换到哪个channel是有事件决定的,Event就是一个重要的概念Selector 会根据不同的事件,在各个通道上切换Buffer 就是一个内存块 , 底层是有一个数组数据的读取写入是通过Buffer,这个和BIO,BIO中要么是输入流,或者是输出流, 不能双向,但是 NIO 的 Buffer 是可以读也可以写, 需要 flip 方法切换 channel 是双向的, 可以返回底层操作系统的情况, 比如 Linux , 底层的操作系统通道就是双向的。缓冲区(Buffer)缓冲区(Buffe.

2021-12-29 13:46:11 53

原创 Java毕设项目-汽车租聘管理系统,大厂Java研发岗面试复盘

运行环境:Jdk1.7,Jre;开发工具:Eclipse或者Myeclipse;框架:JavaWeb;数据库:Mysql5.7,Navicat for mysql(数据库图形化客户端);前端技术:Jsp,CSS,JS所有工具下载链接:JDK下载链接:https://download.csdn.net/download/QinTao9961220/12922459Eclipse下载链接:https://download.csdn.net/download/QinTao9961220

2021-12-29 13:44:55 245

原创 Java树结构实际应用(平衡二叉树-AVL树,深入linux内核架构最新版

插入速度没有影响查询速度明显降低(因为需要依次比较), 不能发挥 BST的优势,因为每次还需要比较左子树,其查询速度比单链表还慢解决方案-平衡二叉树(AVL)2、 基本介绍平衡二叉树也叫平衡二叉搜索树(Self-balancing binary search tree)又被称为 AVL 树, 可以保证查询效率较高。具有以下特点:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过 1,并且左右两个子树都是一棵平衡二叉树。平衡二叉树的常用实现方法有红黑树、AVL、..

2021-12-29 13:43:32 68

原创 Java是编译型还是解释型语言,java开发教程网站

定义:解释型语言的源代码不是直接翻译成机器码,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。在运行的时候才将源程序翻译成机器码,翻译一句,然后执行一句,直至结束。优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。总结:执行速度慢、效率低;依靠解释器、跨平台性好。代表语言:JavaScript、Python、Erlang、PHP、Perl、Ru

2021-12-29 13:42:31 44

原创 Java必备—,java获取视频时长

设置主键时,会自动生成一个唯一索引,如果之前没有聚集索引,那么主键就是聚集索引。没有设置主键时,会选择一个不为空的唯一索引作为聚集索引,如果还没有,那就生成一个隐式的 6 字节的索引。MySql 将数据按照页来存储,默认一页为 16kb,当你在查询时,不会只加载某一条数据,而是将这个数据所在的页都加载到 pageCache 中,这个其实和 OS 的就近访问原理类似。MySql 的索引使用 B+ 树结构。在说 B+ 树之前,先说说 B 树,B 树是一个多路平衡查找树,相较于普通的二叉树,不会..

2021-12-29 13:41:30 416

原创 Java开发三年偶获阿里内推,备战四个月冲进阿里,限时发布

第二、第三个月,认真学习,从原理到源码,一直在找学姐开小灶(感情愈发深厚)第四个月,在学姐的指导下修改了部分简历上写得不太好的地方,填充了很多这段时间来学习的内容,项目部分也在学姐的指导下优化了一下,着重描述参与了那些内容,做了那些优化,拿数据说话说是备战四个月其实不太准确,大概是三个半月左右,后面开始找学姐内推,在7月底拿到了阿里的offer,和学姐同一个部门革命尚未成功、同志仍需努力========================================================

2021-12-29 13:38:58 46

原创 Java并发学习笔记:ReentrantReadWriteLock,spring注解开发原理

if (w + exclusiveCount(acquires) > MAX_COUNT)throw new Error(“Maximum lock count exceeded”);…if (sharedCount© == MAX_COUNT)throw new Error(“Maximum lock count exceeded”);复制代码MAX_COUNT 值为 (1 << SHARED_SHIFT) - 1,也就是 1111111111111111(二进制,16个1)

2021-12-29 13:37:55 99

原创 Java开发两年备战金三银四:多线程+IO,mysql索引原理以及应用

1、Java基本数据类型2、原始数据类型和封装类的区别3、String、StringBuffer、StringBuilder区别4、运行时异常和非运行时异常区别5、简述一下面向对象的特征,并举例说明你对面向对象的理解6、正则表达式的用法7、Java 语言如何进行异常处理,关键字:throws、throw、try、catch、finally分别代表什么意义?finally代码是在return之后还是之前执行?8、abstract class和interface有什么区别?接口可以继承接口吗?接口

2021-12-28 12:26:35 136

原创 Java开发三年偶获阿里内推,备战四个月冲进阿里,抱得美人归

对比本公司的人来说已经很高了,但和知乎、脉脉上的大佬相比,简直是弱爆了!来自学姐的内推==================================================================去年教师节的时候回大学一趟,刚好碰到了在阿里工作的学姐,就要了联系方式,想着以后可以问问她是怎么进阿里的(绝对不是因为人家好看才加的)今年3月份问了学姐内推的事,得到肯定的结果后开始备战阿里!备战四个月,冲进阿里,抱得美人归!==========================

2021-12-28 12:25:11 88

原创 Java并发(十一),java基础类型和包装类型

tryRelease概述ReentrantLock和Mutex都是一个排他锁,也就是说,同一时刻只有一个线程可以去获取这把锁但读写锁并不完全是排他锁,同一时刻是允许多个读线程来进行访问的,读写锁实际上指的是一对锁,读锁和写锁读锁可以被共享,但只要写锁被获取了,那么读锁和写锁都将被阻塞。读写锁不仅可以保证写操作对读操作的可见性外,还可以简化读写交互场景,比如对于一个缓存的结构来说,缓存一般是以读服务为主,读写锁可以保证,写操作对于后续的读操作是可见的(因为写的时候不允许读,只要写完才可...

2021-12-28 12:24:15 78

原创 Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day1,mysql间隙锁原理

String str = “唐伯虎”;str = str + “点香烟”;System.out.print(str); // result : “唐伯虎点香烟”我们明明改变了String型的变量str啊,为什么说是没有改变呢?我们来看一下这张对String操作时内存变化的图:我们可以看到,初始String值为"唐伯虎",然后在这个字符串后面加上新的字符串"点香烟",这个过程是需要重新在栈堆内存中开辟内存空间的,最终得到了"唐伯虎点香烟"字符串也相应的需要开辟内存空间,这样短短的两个字符串,却需要开

2021-12-28 12:21:36 204

原创 Java实现线性表-顺序表示和链式表示(java),Java高级开发岗必问知识点

arrayList[i]=e;length++;}//删除public void delete(int i, Object e) {if(i<0 || i > length-1){throw new RuntimeException(“需删除元素位置有误:”+i);}if(length == 0){throw new RuntimeException(“顺序表为空,不能删除元素”);}for(int j=i;j<length-1;j++){arrayList[j]

2021-12-28 12:20:35 256

原创 Java实现数据结构中的八种排序方法,java基础入门书籍推荐

int j = high - 1;while(i < j){while(i < j && data[++i] <= pivot){}data[j] = data[i];//data[i]大于pivot,移到后半区,此时原data[j]的值已保存在pivot或data[i]中while(i < j && data[–j] >= pivot){}data[i] = data[j];//data[j]小于pivot,移到前半区,此时原data

2021-12-28 12:19:33 72

原创 Java实现QQ第三方登录,linux实用教程第三版於岳

| province | 省(当pf=qzone、pengyou或qplus时返回)。 || city | 市(当pf=qzone、pengyou或qplus时返回)。 || figureurl | 头像URL。详见:前端页面规范#6. 关于用户头像的获取和尺寸说明。 || openid | 用户QQ号码转化得到的ID(当pf=qplus时返回)。 || qq_level | 用户QQ等级(当pf=qplus时返回)。 || qq_vip_level | 用户QQ会员等级(当pf=qplus时返回

2021-12-28 12:18:24 161

原创 java实现excel导入导出(jxl),Java面试题及解析

*/public interface ExcelService {void export(HttpServletResponse response, HttpServletRequest request);List importExcel(String type, InputStream inputStream);}接口实现类package com.mycompany.myapp.service.test.impl;import com.mycompany.myapp.service.tes

2021-12-28 12:17:02 535

原创 Java基础03 Java的运算符,java集合实现原理

前缀:先进行自增或自减,再执行其它运算后缀:先进行其它运算,再执行自增或自减练习1: n1、n2、n3的值分别是多少?int n1 = 10;int n2= n1–; // 先赋值,后减一,n2 = 10 n1 = 9int n3 = ++n2; //先加一,后赋值,n2 = 11 n3 = 11练习2: 请推断res1,a,b此时的值int a = 3;int b = 2;int res1 = (a++)*(–b) ;练习3:请推断r..

2021-12-28 12:15:59 150

原创 Java并发——Callable和Future接口,java基础题目编程题

为了实现 Runnable,需要实现不返回任何内容的 run()方法,而对于Callable,需要实现在完成时返回结果的 call()方法。• call()方法可以引发异常,而 run()则不能。Callable最大的特点就是 它能返回数值,并抛出异常,而且它不是run()方法,而是call()方法。但是Callable最大的问题就是不能丢人Thread类中直接创建,因为Thread只认识Runnable,所以我们必须找到Callable和Runnable之间的桥梁。也就是找一个类,即和Runn

2021-12-27 12:22:17 336

原创 Java工程师(2,mysql高级视频教程

五面五面是HRBP面的,和我提前预约了时间,主要聊了之前在蚂蚁的实习经历、部门在做的事情、职业发展、福利待遇等。阿里面试官确实是具有一票否决权的,很看重你的价值观是否match,一般都比较喜欢皮实的候选人。HR面一定要诚实,不要说谎,只要你说谎HR都会去证实,直接cut了。之前蚂蚁实习三个月怎么不留下来?实习的时候主管是谁?实习做了哪些事情?(尼玛这种也问?)你对技术怎么看?平时使用什么技术栈?(阿里HR真的是既当爹又当妈)最近有在研究什么东西么你对SRE怎么看对

2021-12-27 12:21:21 278

原创 Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day9,Java面试题目

@Target({ElementType.METHOD, ElementType.TYPE}) // 可以在方法和类的声明中使用@Retention(RetentionPolicy.RUNTIME)@Documented@Mappingpublic @interface RequestMapping {String name() default “”;// 指定映射的名称@AliasFor(“path”)String[] value() default {}; // 指定请求路径的地址@Al

2021-12-27 12:20:05 204

原创 java实现分布式事务的三种方案,java软件架构设计

尝试解决上边的需求,在订单服务中远程调用减库存接口,伪代码如下:订单支付结果通知方法{​ 更新支付表中支付状态为“成功”。​ 远程调用减库存接口减库存。}上边的逻辑说明:1、更新支付表状态为本地数据库操作。2、远程调用减库存接口为网络远程调用请求。3、为保存事务上边两步操作由spring控制事务,当遇到Exception异常则回滚本地数据库操作。问题如下:1、如果更新支付表失败则抛出异常,不再执行远程调用,此设想没有问题。2、如果更新支付表成功,网络远程调用超时会拉长

2021-12-27 12:17:41 119

原创 Java基础面试题整理,2021华为Java面试真题解

Java中数据类型所占用的位数和平台无关,在 32 位和64位 的Java 虚拟机中,int 类型的长度都是占4字节.int和Integer的区别?Integer是int的包装类型,在拆箱和装箱中,二者自动转换.int是基本类型,直接存数值;而integer是对象;用一个引用指向这个对象.由于Integer是一个对象,在JVM中对象需要一定的数据结构进行描述,相比int而言,其占用的内存更大一些.String s = new String("abc")创建了几个String对象?2个.一个是字符

2021-12-27 12:16:40 128

原创 Java基础01 Java的安装和配置,mysql基础知识于面试

要开发和运行Java语言,首先要安装JDK(Java开发工具集)目前最新的版本已经是15了,但是jdk8还是国内企业使用最多的版本,本文也以此为例https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html下载Windows版本,直接安装就可以了JDK的目录结构安装好JDK后,我们先了解下目录结构bin 存放各种开发工具,如java、javac等include 存放C语言的头文件lib

2021-12-27 12:15:30 58

空空如也

空空如也

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

TA关注的人

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