- 博客(40)
- 收藏
- 关注
原创 K8S太火了!花10分钟玩转它不香么,面试必备知识点
kubectl create deployment kubernetes-nginx --image=nginx:1.10* 创建一个Deployment时K8S会产生如下操作: * 选择一个合适的Node来部署这个应用; * 将该应用部署到Node上; * 当应用异常关闭或删除时重新部署应用。* 查看所有Deployment:kubectl get deploymentsNAME READY UP-TO-
2021-08-11 18:50:47
317
原创 JVM知识点总览,毕业工作5年被裁
几个小问题?1、JVM初始化步骤 ? 2、类初始化时机 ?3、哪几种情况下,Java虚拟机将结束生命周期?答案参考这篇文章jvm系列(一):java类的加载机制类加载器启动类加载器:Bootstrap ClassLoader,负责加载存放在JDK\jre\lib(JDK代表JDK的安装目录,下同)下,或被-Xbootclasspath参数指定的路径中的,并且能被虚拟机识别的类库扩展类加载器:Extension ClassLoader,该加载器由sun.misc.Launche.
2021-08-11 18:49:38
184
原创 JVM知识梳理,想找工作的你还不看这份资料就晚了
* 方法区中,常量引用的对象 * 本地方法栈中Native引用的对象 * java 虚拟机内部的引用…(具体详见P70)。 算法思路:以GC ROOT 的对象作为起始点,从这些节点开始向下搜索,走过的路径称为引用链( Reference Chain ) 当一个对象到GC ROOT 时没有任何引用链就会被判”缓刑“,要想真正死亡需要经历两次标记,刚才所说的只是暂时标记了一次,第二次标记的时候系统需要判断该对象是否有必要执行一次finaliz
2021-08-11 18:48:24
174
原创 JVM知识梳理,想学IT的必看
解析(该解析大都是参考书上的P68页往后进行总结的): JVM的内存结构包含五大区域:程序计数器、虚拟机栈、本地方法栈(随线程而生,随线程而灭。这三个内存分配和回收都兼备确定性,所以不考虑回收的问题)、堆、方法区程序计数器:可以理解为当前线程所执行的字节码的行号指示器,线程私有,当执行java方法的时候他记录的是正在执行的虚拟机指令的地址,当为native方法时,为空虚拟机栈:java线程执行的内存,线程私有本地方法栈:为本地方法服务的,线程私有堆:线程共享,存放对象实例方..
2021-08-11 18:47:15
119
原创 JVM的类加载机制全面解析,阿里P7Java社招面试的经历
加载是类加载的第一阶段,在这一步中JVM规范要求完成了以下三件事:通过一个类的全限定名来获取定义这个类的二进制字节流。将这个字节流多代表的静态存储结构转化为方法区的运行时数据结构。在内存中生成一个代表这个类的java.lang.Class对象。以上要求其实并不具体,JVM的具体实现和应用都是比较灵活的。比如:获取这个类的二进制字节流,并没有说从哪获取,怎么获取,于是就有了从压缩包中读取(jar、war、ear)、从网络中获取(Applet)、运行时计算生成(动态代理)。对于不是数组的
2021-08-11 18:46:06
100
原创 JVM源码分析之堆外内存(直接内存,传智播客Java就业班最新资源
3、堆外内存申请JDK的ByteBuffer类提供了一个接口allocateDirect(int capacity)进行堆外内存的申请,底层通过unsafe.allocateMemory(size)实现。Netty、Mina等框架提供的接口也是基于ByteBuffer封装的。import java.nio.ByteBuffer;public class DirectOom { public static void main(String[] args) { .
2021-08-11 18:44:54
107
原创 jvm内存结构,分享一些行业经验
本地方法栈介绍:Hot-Spot虚拟机直接将本地方法栈和虚拟机栈合二为一。特点:线程私有,在栈深度扩展失败时也会抛出StackOverflowError异常java堆介绍:《java虚拟机规范中》堆描述:所有的对象实例以及数组都应当在堆上分配java堆是垃圾收集管理的内存区域,也可以称作GC堆堆可以处于物理上不连续的内存空间中,但在逻辑上应该被视为连续的,但是对于大对象、数组,很可能会要求连续的内存空间特点:线程共享,堆内存不够时会抛出OutOfMemoryErro
2021-08-11 18:43:45
77
原创 JVM内存模型详解,GitHub重磅官宣
例如,我们现在知道JVM将类加载到内存中以进行后续操作。所以我问你,这些类在被加载到内存之后会去哪里?你想过这个问题吗?所以在JVM中必须有一个内存区域来存储我们编写的类。包括我们定义的成员变量、类变量、方法、局部变量等,都对应于JVM内存中记录存储的一块内存。方法区在以前的JDK1.8版本中,它代表了JVM的一个区域。在1.8版之后,这个区域的名称被改为“MateSpace”,可以称为“元数据空间”。当然,它主要存储关于我们自己编写的各种类的信息。例如。有两个类,user1类没有成员变量,use
2021-08-11 18:42:32
115
原创 Java集合中的基本数据结构,Javaweb基础知识总结
不能存在两个连续的红色节点(红色节点的两个子节点必须是黑色)任一节点到叶子节点的路径包含相同数量的黑节点红黑树通过什么自平衡左旋:以某个节点作为支点(旋转节点),其右子节点变为旋转节点的父节点,右子节点的左节点变为旋转节点的右子节点,左子节点保持不变右旋:以某个节点作为支点(旋转节点),其左子节点变为旋转节点的父节点,左子节点的右子节点变为旋转节点的左子节点,右子节点保持不变变色:节点的颜色由红色变为黑色或者黑色变为红色红黑树插入场景1、红黑树为空..
2021-08-10 15:10:52
104
原创 Java队列Queue,linux入门学习
阻塞队列(BolckingQueue)一、插入与移除1、插入队列不满时可执行插入元素线程,直到队列满。2、移除队列不为空时都可移除,直到队列为空。抛出异常:满的时候插入,空的时候取出都会抛出异常。返回特殊值:插入成功返回true一直阻塞:满时put和空时take会阻塞线程,直到队列可用。二、JDK7提供了7个阻塞队列:1、ArrayListBlockingQueueArrayBlockingQueue是一个由数组支持的有界阻塞队列。在读写操作上都需要锁住整个容器,因此吞吐量与一般的实
2021-08-10 15:09:40
124
原创 Java通过Process执行C# exe程序,农民工看完都会了
return true; } else { return false; }} catch (Exception e) { log.error("uploadFileByFtp exception:{}", e);}return false;}虽然功能实现了,但感觉缺少点什么?二、waitFor()-----------waitFor()函数表示,等待子进程执行结束,或者已手动终止子进程,此方法立即返回...
2021-08-10 15:08:30
342
原创 Java通过Jsoup解析HTML文件,已成功拿下字节、腾讯、脉脉offer
2、代码实例//通过Jsoup获取table中对应标签的信息private static void HTMLParserMapInit() throws IOException { Document document = Jsoup.parse(new File("D:\\information\\test.html"), "utf-8"); Elements table_title = document.select(".title"); Elements
2021-08-10 15:07:18
183
原创 Java资料,腾讯程序员熬夜码字:网络 IO 演变发展过程和模型介绍
2. 非阻塞 IO(NIO)3. IO 多路复用第一版(select/poll)4. IO 多路复用第二版(epoll)5. 异步 IO(AIO)而每一个阶段,都是因为当前的网络有一些缺陷,因此又在不断改进该缺陷。这是网络 IO 一直演变过程中的本质。下面将对上述几个阶段进行介绍,并对每个阶段的网络 IO 解决了哪些问题、优点、缺点进行剖析。[]()1.2 网络的两个阶段在网络中,我们通常可以将其广义上划分为以下两个阶段:第一阶段:硬件接口到内核态第二阶段:内核态到用户态本人理解:我们通
2021-08-10 15:06:10
129
原创 Java设计模式:23种设计模式全面解析,墙都不扶就服你
命令模式:将命令请求封装为一个对象,使得可以用不同的请求来进行参数化。迭代器模式:一种遍历访问聚合对象中各个元素的方法,不暴露该对象的内部结构。观察者模式:对象间的一对多的依赖关系。仲裁者模式:用一个中介对象来封装一系列的对象交互。备忘录模式:在不破坏封装的前提下,保持对象的内部状态。解释器模式:给定一个语言,定义它的文法的一种表示,并定义一个解释器。状态模式:允许一个对象在其对象内部状态改变时改变它的行为。责任链模式:将请求的发送者..
2021-08-10 15:04:59
10984
5
原创 Java设计模式及实践百度云,从事程序员的工作,Python大数据
Python目前发展优势的主要领域在于人工智能这个系列、机器学习、深度学习、算法这些东西。而在web这块Python是不具备优势的。但是人工智能的门槛非常高,如果你不是硕士学历,根本学不了。做人工智能方面,需要当事人对于数学非常好,离散数学、线性数学这些东西,这不是一般人能学的。那学习Python还可以做web和爬虫,web这块肯定是门槛最低的,每个人都能做。但是目前学习Python只可能在一线城市找到工作,其他城市几乎都找不到,即使是一个省的省会,也很难找到有招聘Python的,所以如果有人想学习Pyth
2021-08-10 15:03:48
159
原创 Java视频全套,一个月面试了3家大厂Java岗,我发现这几个突破点
3、精通linux常用命令,网络协议,jvm、tomcat、nginx等调优;4、具备较强的推进能力和责任心,优秀的沟通能力和团队精神,热爱技术工作;5、有高并发、高性能、高可用大型网站构建经验者优先;6、有企业运营管理类ERP复杂业务系统搭建经验者优先。高级工程师:1、6年以上工作经验,作为核心成员参加过大中型互联网Web应用开发,有互联网金融相关的贷款、支付、清结算方面开发经验优先;2、JAVA基础扎实,理解 io、多线程、集合等基础框架,对JVM原理有一定的了解;3、熟练掌握Ora.
2021-08-10 15:02:44
112
原创 Kafka集群管理,做了6年的Java
从图中可以看出 Kafka 强依赖于 ZooKeeper ,通过 ZooKeeper 管理自身集群,如:Broker 列表管理、Partition 与 Broker 的关系、Partition 与 Consumer 的关系、Producer 与 Consumer 负载均衡、消费进度 Offset 记录、消费者注册 等,所以为了达到高可用,ZooKeeper 自身也必须是集群。二、集群搭建1.ZooKeeper集群搭建场景真实的集群是需要部署在不同的服务器上的,但是在我们测试时同时启动十几个虚拟机内存
2021-08-09 16:10:35
102
原创 Kafka必须掌握的核心技术:为什么吞吐量大,高级Java工程师面试
众所周知Kafka是将消息记录持久化到本地磁盘中的,一般人会认为磁盘读写性能差,可能会对Kafka性能如何保证提出质疑。实际上不管是内存还是磁盘,快或慢关键在于寻址的方式,磁盘分为顺序读写与随机读写,内存也一样分为顺序读写与随机读写。基于磁盘的随机读写确实很慢,但磁盘的顺序读写性能却很高,一般而言要高出磁盘随机读写三个数量级,一些情况下磁盘顺序读写性能甚至要高于内存随机读写。这里给出著名学术期刊 ACM Queue 上的性能对比图: queue.acm.org/detail.cf磁盘的顺序读写是磁盘使
2021-08-09 16:09:26
147
原创 Kafka存储(为什么Kafka使用磁盘作为存储介质,鸟哥的linux私房菜
2.偏移量索引数据文件分段使得可以在一个较小的数据文件中查找对应offset的Message了,但是这依然需要顺序扫描才能找到对应offset的Message。为了进一步提高查找的效率,Kafka为每个分段后的数据文件建立了索引文件,文件名与数据文件的名字是一样的,只是文件扩展名为.index。比如:要查找绝对offset为7的Message:首先是用二分查找确定它是在哪个LogSegment中,自然是在第一个Segment中。 打开这个Segment的index文件,也是用二分查找找到offset
2021-08-09 16:08:21
200
原创 Kafka发送原理剖析&其他生产者参数,springboot面试题及答案高级
这个参数用来指定分区中必须有多少个副本收到这条消息,之后生产者才会认为这条消息时写入成功的。acks是生产者客户端中非常重要的一个参数,它涉及到消息的可靠性和吞吐量之间的权衡。ack=0, 生产者在成功写入消息之前不会等待任何来自服务器的相应。如果出现问题生产者是感知不到的,消息就丢失了。不过因为生产者不需要等待服务器响应,所以它可以以网络能够支持的最大速度发送消息,从而达到很高的吞吐量。ack=1,默认值为1,只要集群的首领节点收到消息,生产这就会收到一个来自服务器的成功响应。如果消息无法达到首领节
2021-08-09 16:07:07
260
原创 Kafka中的时间轮算法讲解,3个月学会Java开发
当然如果我们自己写一个map,并保证它不存在hash冲突问题,那也是完全可行的。(我不确定我的想法是否正确,如果错误,请指出)其实时间轮就是一个不存在hash冲突的数据结构抛开其他疑问,我们看看手腕上的手表(如果没有去找个钟表,或者想象一个),是不是无论当前是什么时间,总能用我们的表盘去表示它(忽略精度)就拿秒表来说,它总是落在 0 - 59 秒,每走一圈,又会重新开始。用伪代码模拟一下我们这个秒表:这样,我们的时间总能落在0 - 59任意一个bucket上,就如同我们的秒钟总是落在0 -
2021-08-09 16:06:01
202
原创 JWT实现分布式Session,三分钟搞定分布式结构服务部署发布
}>1、alg属性表示**签名的算法,默认算法为HS256**,可以自行别的算法。>2、typ属性表示这个**令牌的类型**,JWT令牌就为JWT。上面的JSON数据会通过**Base64算法**进行编码而成,看工具图#
2021-08-09 16:04:49
398
原创 JVM规范2-5章节Run-Time-Data-Areas运行时数据区译解
2.5.2 Java Virtual Machine StacksEach Java Virtual Machine thread has a private Java Virtual Machine stack, created at the same time as the thread. A Java Virtual Machine stack stores frames (§2.6). A Java Virtual Machine stack is analogous to the stack o
2021-08-09 16:03:36
116
原创 【Android开发,kafka教程Java
2、NEW一个OnClickListenner()接口实现3、实现OnClickListener接口(Switch方法)Hello,你好呀,我是灰小猿!一个超会写bug的程序猿!今天在这里和大家总结记录下在Android开发中关于button点击后事件响应的三种实现方法,这三种方法分别是:在xml中对onclick()进行指定方法;在Actitivy中new出一个OnClickListenner();实现OnClickListener接口接下来我们就对这三种方法进行一一讲解:1、在xml中
2021-08-08 19:45:00
687
原创 【2021软件创新实验室暑假集训,linux运维教程电子书
Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can “just run”.We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot .
2021-08-08 19:43:51
173
原创 《零基础,Java高级面试手册
CREATE TABLE `employee_tbl` (`id` int(11) NOT NULL,`name` char(10) NOT NULL DEFAULT ‘’,`date` datetime NOT NULL,`singin` tinyint(4) NOT NULL DEFAULT ‘0’ COMMENT ‘登录次数’,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;– Records of `employee_t
2021-08-08 19:42:43
84
原创 《零基础(6),Java编程教程视频
MySQL 表中使用 INSERT INTO SQL语句来插入数据。你可以通过 mysql> 命令提示窗口中向数据表中插入数据,或者通过PHP脚本来插入数据。语法以下为向MySQL数据表插入数据通用的 INSERT INTO SQL语法:INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( value1, value2,...va
2021-08-08 19:41:28
78
原创 《零基础(5),食堂大妈看完都会了
Dropping the database is potentially a very bad thing to do.Any data stored in the database will be destroyed.Do you really want to drop the 'RUNOOB' database \[y/N\] yDatabase "RUNOOB" dropped使用PHP脚本删除数据库PHP使用 mysqli_query 函数来创建或者删除 MySQL 数.
2021-08-08 19:40:22
77
原创 《零基础(4),Java面试复习重点
导入成功后,执行以下 SQL 语句:mysql> set names utf8;mysql> SELECT * FROM employee_tbl;±—±-------±--------------------±-------+| id | name | date | singin |±—±-------±--------------------±-------+| 1 | 小明 | 2016-04-22 15:25:33 | ...
2021-08-08 19:39:11
99
原创 《零基础(3),写给即将正在找工作的Java攻城狮
– Records of `employee_tbl`BEGIN;INSERT INTO `employee_tbl` VALUES (‘1’, ‘小明’, ‘2016-04-22 15:25:33’, ‘1’), (‘2’, ‘小王’, ‘2016-04-20 15:25:47’, ‘3’), (‘3’, ‘小丽’, ‘2016-04-19 15:26:02’, ‘2’), (‘4’, ‘小王’, ‘2016-04-07 15:26:14’, ‘4’), (‘5’, ‘小明’, ‘2016-04.
2021-08-08 19:38:01
91
原创 《零基础(2),刚面试了阿里,滴滴,网易
-> VALUES-> ("学习 MySQL", "菜鸟教程", NOW());Query OK, 1 rows affected, 1 warnings (0.01 sec)mysql> INSERT INTO runoob_tbl-> (runoob_title, runoob_author, submission_date)-> VALUES-> ("JAVA 教程", "RUNOOB.COM", '2016-05-06');Query OK
2021-08-08 19:36:56
92
原创 Java视频马士兵百度云,21道Java基础面试题及答案
(1)HashMap的源码:1、HashMap中的hash函数实现:详见:https://www.zhihu.com/question/207336172、HashMap源码解读详见:http://blog.youkuaiyun.com/ll530304349/article/details/53056346(2)ConcurrentHashMap的源码:1、JDK1.7版本的实现ConcurrentHashMap的锁分段技术:假如容器里有多把锁,每一把锁用于锁容器其中一部分数据,那么当多线程访问容器里不
2021-08-07 06:57:46
767
原创 Java视频百度云盘,Kafka分区管理(优先副本的选举
然后执行脚本 bin/kafka-reassign-partitions.sh --zookeeper localhost:2181 --topics-to -move-json-file reassign.json --broker-list "0,1,2,3" --generateitcast@Server-node:/mnt/d/kafka-cluster/kafka-1$ bin/kafka-reassign- partitions.sh --zookeeper localhost:2181 -
2021-08-07 06:56:23
110
原创 Java视频教程百度网盘,Java精选面试Spring全家桶
Spring 10C原理Spring APO原理Spring MVC原理Spring Boot原理JPA原理Mybatis缓存Tomcat架构Spring面试题一**、基本概念面试题集( Spring 相关概念梳理)**1.谈谈对Spring loC的理解?2.谈谈对Spring DI的理解?BeanFactory接口和ApplicationContext接口不同点是什么?4.请介绍你熟悉的Spring核心类,并说明有什么作用?5.介绍一下 Spring 的事务的了解?.
2021-08-07 06:55:09
259
原创 Java视频教程传智播客,2021最新38道Spring大厂面试题,你碰到过哪道
是声明性的支持。3.spring中的模块儿有哪些?模块包括一是测试,二是核心容器,三是面向特征的编程方式,四是数据访问与集成,五是网络开发模块。4.什么是loc?什么是dI?ioc是依赖反转,dl是依赖注入。这种设计模式是为了提供松耦合性,从而去除程序中的强依赖性。5.ioc容器起什么作用?ioc容器的作用如下,创建实例,配置实例和集成依赖。6.ioc容器有几种类型?有两种: beanfactory和applicationcontext.7.beanfactory和applicatio.
2021-08-07 06:53:56
500
原创 Java虚拟机学习集锦是我攒来的,【备战秋招冲击大厂(1)
复合索引未用左列字段;like以%开头;需要类型转换;where中索引列有运算;where中索引列使用了函数;如果mysql觉得全表扫描更快时(数据少);12. B+树MySQL 中最常用的索引的数据结构是 B+ 树,有以下特点:1)在 B+ 树中,所有数据记录节点都是按照键值的大小存放在同一层的叶子节点上,而非叶子结点只存储key的信息,这样可以大大减少每个节点的存储的key的数量,降低B+ 树的高度2)B+ 树叶子节点的关键字从小到大有序排列,左边结尾数..
2021-08-07 06:52:34
147
原创 Java虚拟机学习集锦是我攒来的,MyBatis入门
2)它提供的持久层框架包括SQL Maps和Data Access Objects(DAO)。3)mybatis与hibernate的对比?mybatis提供一种“半自动化”的ORM实现。这里的“半自动化”,是相对Hibernate等提供了全面的数据库封装机制的“全自动化”ORM实现而言,“全自动”ORM实现了POJO和数据库表之间的映射,以及 SQL 的自动生成和执行。而mybatis的着力点,则在于POJO与SQL之间的映射关系。二、简单例子(快速入门)===========
2021-08-07 06:51:12
92
原创 Java虚拟机学习集锦是我攒来的,Java-String-对象,你真的了解了吗
2、String()构造函数的方式String str = new String("pingtouge")的形式,使用这种方式创建字符串对象过程就比较复杂,分成两个阶段,首先在编译时,字符串pingtouge会被加入到常量结构中,类加载时候就会在常量池中创建该字符串。然后就是在调用new()时,JVM 将会调用String的构造函数,同时引用常量池中的pingtouge字符串,在堆内存中创建一个String对象并且返回堆中的引用地址。了解了String对象两种创建方式,我们来分析一下下面这段代码,加深
2021-08-07 06:49:53
94
原创 Java菜鸟教程视频,Java程序员跳槽
**程序员小李:**额~是说那四种线程池吗?还是线程池的工作原理、工作流程?**面试官:**额~那换一个问题吧!什么是中间件?程序员小李:中间件是处于操作系统和应用程序之间软件,使用时往往是一组中间件集成在一起,构成一个平台(开发平台+运行平台),在这组中间件中必须要有一个通信中间件,即中间件=平台+通信。该定义也限定了只有用于分布式系统中才能称为中间件。主要分类:远程过程调用、面向消息的中间件、对象请求代理、事物处理监控。面试官:那如果要你自己设计一个中间件,你会怎么设计呢?**程序员小李
2021-08-07 06:48:30
140
原创 Java自学,如何玩转IoC-?跟着我的脚步
第一章 Overview,讲述它的历史、设计原理等等;第二章 Core,包含了 IoC 容器,AOP 等等,那自然是讲 Spring 的核心了,要点进去好好看了。点进去之后发现了宝贵的学习资料,一切的 what, why, how 都可以在这里找到答案。这里很好的解释了大名鼎鼎的 IoC - Inversion of Control, 控制反转。每次读都会有新的体会和收获。我粗略的总结一下:控制反转就是把创建和管理 bean 的过程转移给了第三方。而这个第三方,就是 Spring IoC Co
2021-08-07 06:47:10
113
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人