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

原创 java高级面试题总结
目录1、java基础2、数据库3、java多线程4、jvm、java内存模型5、java框架(spring boot,sprint cloud)6、中间件7、算法8、网络1、java基础###hashmap原理?扩容##arraylist原理?扩容##jdk1.8新特性?2、数据库##mysql索引优化https://www.cnblogs.com/qlqwjy/p/8592043....
2019-12-18 14:35:02
5570
1
原创 Vue3+ts实现页面跳转及参数传递
## 列表页<script lang="ts" setup>import { reactive, toRefs } from 'vue'// 1 引入useRouter路由信息方法import { useRouter } from 'vue-router'// 2 获取实例const router = useRouter()const gotoDetail = (index: string) => { router.push({ path: '/demo
2023-12-12 14:44:37
2350
原创 flutter环境搭建
windows环境下IntelliJ IDEA搭建flutter环境及配置,创建第一个flutter项目,并将其运行在Android模拟机中。
2021-12-08 23:40:36
769
原创 Springboot 与kafka简单整合demo
maven依赖 <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> </dependency>properties配置server.port=8881spring.kafka.bootstrap-serve
2021-08-10 17:57:15
326
原创 Windows下使用docker搭建kafka开发环境
前提:1、安装docker for Windows,2,安装docker-compose镜像选择:对比网上给出的版本比较,选择wurstmeister/kafka 和wurstmeister/zookeeper,原因:kafka版本较新,zookeeper跟kafka分在2个镜像中docker-compose.ymlversion: '3.7'services: zoo1: image: wurstmeister/zookeeper restart: unles.
2021-08-10 15:15:08
460
原创 kafka入门概念
page cache中的数据会随着内核中flusher线程的调度写回磁盘。与它相关的有以下4个参数,必要时可以调整。 /proc/sys/vm/dirty_writeback_centisecs:flush检查的周期。单位为0.01秒,默认值500,即5秒。每次检查都会按照以下三个参数控制的逻辑来处理。 /proc/sys/vm/dirty_expire_centisecs:如果page cache中的页被标记为dirty的时间超过了这个值,就会被直接刷到磁盘。单位为0.01秒...
2021-08-10 09:46:59
123
原创 java 1.8 :: 使用总结
public class Person { private String name; Person() { } Person(String name) { this.name = name; } static String say(String something) { return something; } String sing(String songName) { return s.
2021-08-03 14:45:31
403
转载 java使用await和signalAll实现生产者消费者模型
所对象一定要是静态的,才能实现不同的线程之间的通知https://blog.youkuaiyun.com/zqzxken/article/details/46364721
2021-07-15 15:29:28
118
原创 mybatis一对多Collection使用
场景:订单主表:order_mainCREATE TABLE `order_main` ( `order_id` bigint(20) unsigned NOT NULL COMMENT '订单ID', `order_show_no` varchar(64) DEFAULT '' COMMENT '订单展示id', `third_order_id` bigint(20) DEFAULT NULL COMMENT '第三方订单ID', `order_source` varchar(6
2021-03-19 17:30:22
905
3
原创 如何理解mysql的mvcc
## 问:如何理解mysql的mvcc所谓多版本,就是一行记录在数据库中存储了多个版本(版本链),每个版本以事务ID作为版本号。InnoDB 引擎表中,它的聚簇索引记录中有两个必要的隐藏列:trx_id这个id用来存储的每次对某条聚簇索引记录进行修改的时候的事务id,roll_pointer就是存了一个指针,它指向这条聚簇索引记录的上一个版本的位置,通过它来获得上一个版本的记录信息。每次查询在事务开始的时候向InnoDB的事务系统申请trx_id,并且按照申请顺序严格递增的。假如一行记录被多个...
2021-03-17 18:10:16
169
原创 Java实现栈
#数组实现public class MStack1<T> { private Object[] stack; private int size; MStack1() { stack = new Object[10]; } public boolean isEmpty() { return size == 0; } //返回栈顶元素 public T peek() { T t
2021-02-01 17:49:04
102
原创 Java基础回顾
Java范型https://www.cnblogs.com/wuqinglong/p/9456193.htmlJava类型擦除Java的泛型是伪泛型,这是因为Java在编译期间,所有的泛型信息都会被擦掉。Java的泛型基本上都是在编译器这个层次上实现的,在生成的字节码中是不包含泛型中的类型信息的,使用泛型的时候加上类型参数,在编译器编译的时候会去掉,这个过程成为类型擦除。举例说明:例1: public static void main(String[] args) {
2020-12-27 20:55:39
337
原创 LeetCode-20 有效的括号
LeetCode题目题目链接:https://leetcode-cn.com/problems/valid-parentheses/给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: ...
2020-02-25 20:20:20
116
原创 深入理解JVM内存模型-----举例说明
对于java虚拟机的理解,一直停留在似懂非懂的阶段,只了解栈、堆、方法区、程序计数器这些名词,还有一些垃圾回收的算法之类,因为面试遇到一个问题,用一个例子说明java虚拟机的内存模型,每个部分分布在什么地方,这时候就一脸焖逼,所以本文就用一个例子举例来粗略的说明虚拟机的内存模型首先例子如下:public class JVM { public static void main(St...
2020-02-18 14:37:38
279
原创 java数组模拟实现队列
数组模拟队列的简单实现方式代码如下:public class ArrayQueue { private int maxSize; private int front; private int tail; private int[] array; public ArrayQueue(int queueSize) { maxSize = ...
2020-02-17 17:50:48
335
原创 LeetCode-198 打家劫舍
LeetCode题目链接:https://leetcode-cn.com/problems/house-robber/题目:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够...
2020-01-16 19:43:57
144
原创 LeetCode-337 打家劫舍 III
LeetCode题目链接:https://leetcode-cn.com/problems/house-robber-iii/该题目在便利蜂面试的时候遇到了,当时完全没做出来[旺柴]在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方...
2020-01-16 16:03:48
201
原创 二叉树遍历
赋值二叉树二叉树形式如下树形结构public class TreeNode { public int value; public TreeNode left; public TreeNode right; public TreeNode(int value) { this.value = value; }}赋值...
2020-01-16 14:57:02
116
原创 LeetCode-36 有效的数独
LeetCode题目链接:https://leetcode-cn.com/problems/valid-sudoku/此题目在面试便利蜂的时候笔试时遇到了,当时没有完全做出来,现在整理如下。题目:判断一个9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字1-9在每一行只能出现一次。数字1-9在每一列只能出现一次。数字1-9在每一个以粗...
2020-01-16 11:59:04
217
原创 Spring源码阅读
阅读Spring源码,我们可通过在github上下载源码,再通过编译的方式进行,也可以通过Idea构建maven工程,阅读maven反编译后的源码,源码编译的方式会有编译错误,操作复杂,本文通过maven反编译的方式阅读spring源码。因为XML的方式创建spring项目不易阅读,以下项目通过javabean的方式创建。1、创建maven项目很容易,不多说2、添加maven依赖...
2020-01-14 16:25:54
168
原创 spring框架理解
Spring AOP描述一下Spring AOP面向切面编程,可以看作是对OOP(面向对象编程)的一种补充,传统的OOP开发中代码逻辑是自上而下的,在这些自上而下的过程中会产生横切的问题,而这些横切性的问题又与我们业务逻辑关系不大。AOP让你可以使用简单可插拔的配置,在实际逻辑执行之前、之后或周围动态添加横切关注点。这让代码在当下和将来都变得易于维护。spring AOP可以通过注解和XM...
2020-01-13 13:17:54
250
原创 ThreadLocal源码分析
set过程1、ThreadLocal.set(T value)方法 /** * Sets the current thread's copy of this thread-local variable * to the specified value. Most subclasses will have no need to * override this...
2020-01-10 18:55:27
171
原创 面试题:生产者消费者模型
题目:写一个固定容量的同步容器,拥有put和get方法,一个getCount方法,能够支持2个生产者线程以及10个消费者现成的阻塞调用。使用wait和notify/notifyAll来实现import java.util.LinkedList;public class MyContainer<T> { final private LinkedList<T&g...
2020-01-07 00:26:07
463
原创 java多线程synchronized和reentrantlock区别
synchronized是非公平锁,reentrantlock可以指定为公平锁。synchronized修饰非静态的方法时,所对象为当前类的class单例对象。ReentrantLock可以替代synchronized,使用synchronized锁定如果遇到一场,jvm会自动释放锁,使用reentrantlock必须手动释放锁,一般在finally中释放。reentrantlock可...
2020-01-06 23:46:31
176
原创 多线程理解(java)
start()方法的执行步骤通过jvm告诉操作系统创建thread。 操作系统开辟内存并调用本地函数创建Thread线程对象。 操作系统对Thread对象进行调度,以确定执行时机。 Thread在操作系统中被成功执行。因为start()方法的执行需要调用操作系统本地的方法(函数),因此start()的执行比较耗时。下面代码的执行结果通常情况下是先输出运行结束,后输出MyThread。但...
2020-01-06 16:06:01
160
原创 python装饰器的理解
场景一:我们需要统计一个方法的执行时间,可以通过下面方式实现,代买很简单import timedef fun(): time.sleep(2) start_time=time.time()fun()end_time=time.time()print(end_time-start_time)场景二:我们需要统计100个方法的执行时间,上面代码就可以通过装饰器的形式...
2019-12-04 20:22:29
102
原创 Dockerfile sed命令记录
FROM 172.16.1.60:5000/airflow-centos7-python3.6-base:latestENV AIRFLOW_HOME /opt/app/airflow-agentENV SLUGIFY_USES_TEXT_UNIDECODE yesENV GIT_DAGS git@gitlab.youxin.com:devops/airflow-dags.gitENV...
2019-09-06 21:06:54
3645
原创 Hive 几个概念的理解
Hive中主要抱哈四类数据模型:表(Table),外部表(External Table),分区(Partition)和桶(Bucket)创建表的操作: 表创建和数据加载两个步骤(可在一个语句中完成),在数据加载过程中,实际数据会移动到数仓目录中,之后的数据访问将直接在数仓目录中完成,删除表时,表中的数据和元数据都会同时删除。创建外部表的操作: 只有一个步骤,...
2019-08-28 18:13:29
206
原创 Hadoop2.0 Federation 和 HA理解笔记
目录一、Federation:联盟HDFS的理解NameSpaces的理解二、HA:高可用HA架构一、Federation:联盟HDFS的理解HDFS主要由两部分组成: 1、Namespace: namespace包含目录、文件、块,它支持所有与命名空间相关的文件系统操作,例如创建,删除,修改和列出文件和目录 2、Block St...
2019-08-22 11:24:16
520
原创 Hadoop 2.0底层原理理解
Hadoop1.0面临的问题 HDFS存在的问题: Name Node 单点故障,难以引用于在线场景 Name Node压力过大,切内存受限,影响系统扩展性 MapReduce存在问题: JobTracker访问压力大,影响系统扩展性 不支持除MapReduce之外的其他计算框架Hadoop1.X与Hadoo...
2019-08-20 14:53:18
172
原创 MR分布式计算理论
MapReduce设计理念: 移动计算,而不是移动数据 两个阶段,Map / ReduceMap和Reduce之间的Shuffle、Partition、Combiner过程的理解 Shuffle过程:每个map task都有一个内存缓冲区,存储着map的输出结果,默认100MB(也可以通过设置配置文件中的参数mapreduce.task.io....
2019-08-19 18:14:05
515
原创 kafka实战笔记
kafka是如何保证高吞吐的kafka会将消息持久化到磁盘,但实际上每次操作都是将数据写入到系统的页缓存中,然后由系统自行决定什么时候将页缓存中的数据刷新到磁盘中, 这种设计带来的优势: 系统页缓存是在内存中分配的,消息写入速度非常快 kafka不直接与底层文件系统打交道,将繁琐的IO操作交给操作系统处理 ...
2019-08-15 15:50:39
140
原创 算法题:整数转罗马数字
问题:罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做II,即为两个...
2019-08-13 21:10:59
196
原创 HBASE 常见操作命令
创建表create 'user','info','data' 创建表user,并指定列族info,data添加数据put 'user','rk0001','info:name','zhangsan' 向表user表中添加信息,row key 为rk0001,列族info中添加name列,值为zhangsanput 'user','rk0001','info:gender'...
2019-07-24 18:08:48
246
原创 HBASE单机版安装
HBASE下载地址:https://hbase.apache.org/downloads.html解压,注意要下载bin文件,不能是src文件修改 /conf下的hbase-env.sh文件,增加JAVA_HOME配置修改/conf下的hbase-site.xml 文件,增加一下内容,value为HBASE加压目录<property> <nam...
2019-07-24 15:47:31
169
原创 linux命令总结
vim下删除光标到光标所在行的结尾部分:d$shell命令移动光标到行首: ctrl + avim多行注释: 1. 首先按esc进入命令行模式下,按下Ctrl + v,进入列(也叫区块)模式; 2. 在行首使用上下键选择需要注释的多行; 3. 按下键盘(大写)“I”键,进入插入模式; 4. 然后输入注释符(“//”、“#”等); 5. 最后按下“Esc”键。 ...
2019-07-24 14:45:20
116
原创 zookeeper的理解
zookeeper中的角色:1:领导者(leader) 负责进行投票的发起和决议,更新系统状态2:学习者 ①跟随者:Follower:接受客户端的请求并向客户端返回结果,在选举过程中参与投票 ②观察者:Observer:接受客户端的请求并像客户端返回结果,在选举过程中不参与投票。设置观察者的目的为了扩展系统,提高读取效率3:客户端 请...
2019-07-10 15:36:57
222
原创 springboot JAVA API 操作hadoop伪分布式集群
虚拟机(192.168.74.114)中搭建了hadoop伪分布式集群,查看集群运行状态springboot maven依赖 <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-hdfs</artifactId> <...
2019-07-01 17:27:24
574
原创 hdfs搭建记录
修改hostname修改 /etc/sysconfig/network文件的HOSTNAME修改 /etc/hosts文件重启:shutdown -r now配置免密登录master节点需要登录node节点,需要配置ssh免密在每个节点执行命令ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa在master节点执行命令,将公钥...
2019-06-27 14:49:56
115
原创 快排java实现
public class QuickSort { public static void main(String[] args) { int[] a = {8, 15, 2, 3, 4, 67, 12, 7, 13, 5, 9}; System.out.println(Arrays.toString(a)); sort(a); ...
2019-06-26 15:00:59
240
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人