自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 关于jvm参数:-XX:SurvivorRatio的坑

关于jvm参数:-XX:SurvivorRatio的坑坑1:-XX:SurvivorRatio表示新生代Eden区域和Survivor区域(From幸存区或To幸存区)的比例,默认为8,表示Eden区域与其中一个Survivor区域的比例为8:1,即Eden区域与From区域与to区域的比例为8:1:1比如设置-Xmn=100m来指定新生代大小的为100M,Eden区域的大小为100M*8/(8+1+1)=80M,From区域和To区域分别为10M。如果手动设置-XX:SurvivorRatio=4

2020-11-24 01:00:15 649

原创 为什么新生代内存需要有两个Survivor区

介绍:新生代会被分为一块较大Eden空间和两块较小的Survivor空间(分别称为from和to),默认大小比例为8:1:1解答:新生代在垃圾收集时采用的是标记-复制算法,每次分配内存的时候只分配其中的eden区和其中一块Survivor区。发生垃圾收集的时候,只收集使用过的eden区和使用过的Survivor区,把存活下来的对象一次性复制到另一块Survivor上,再清理掉eden区和使用过的Survivor区。产生的问题:虽然每次新生代收集(Minor GC)都能达到98%的回收率,但是也会出现Su

2020-11-11 15:59:50 81

原创 设计模式(二)单例模式

单例模式一、概念二、实现2.1 饿汉式(静态常量)2.2 饿汉式(静态代码块)2.3 懒汉式(线程不安全)2.4 懒汉式(线程安全,同步方法)2.5 双重检查2.6 静态内部类2.7 枚举类一、概念单例模式(Singleton),也叫单子模式,是一种常用的设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候,整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程

2020-10-13 23:47:29 49

原创 设计模式(一)观察者模式

观察者模式一、概念二、实践三、应用场景一、概念观察者一般可以看做是第三者,比如在学校上自习的时候,大家肯定都有过交头接耳、各种玩耍的经历,这时总会有一个“放风”的小伙伴,当老师即将出现时及时“通知”大家老师来了。再比如,拍卖会的时候,大家相互叫价,拍卖师会观察最高标价,然后通知给其它竞价者竞价,这就是一个观察者模式。观察者模式(Observer):定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并自动更新。结构图如下:观察者模式的主要角色如下:抽象主题

2020-10-04 11:57:16 61

原创 SpringBoot+swagger2构建API文档

概述Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法、参数和模型紧密集成到服务器端的代码,允许 API 来始终保持同步。实践项目框架先建一个springboot项目,引入依赖<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-s

2020-09-24 19:43:59 29

转载 【转】Java深入理解深拷贝和浅拷贝区别

原文地址:https://blog.csdn.net/riemann_/article/details/87217229转载请备注

2020-08-25 09:39:42 75

原创 JVM类加载机制

目录1.概念2.类加载的过程加载验证准备解析初始化3.类加载器(重点)4.类加载机制1.概念什么是类加载机制?java虚拟机把描述类的数据从 Class 文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的 Java 类型。2.类加载的过程Java 虚拟机中类加载的全过程一共有5个阶段,加载、验证、准备、解析和初始化。加载过程:通过一个类的全限定名来获取定义此类的二进制字节流。将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。在内存中生成一个代

2020-08-18 23:12:34 31

原创 【LeetCode刷题】动态规划:5. 最长回文子串

方法一:暴力法两次循环,判断两个字符以上的字符串是否是回文。由于判断是否属于回文函数里又有一层循环,因此时间复杂度为O(N³),空间复杂度为O(1)。class Solution { public String longestPalindrome(String s) { if(s.length()<2){ return s; } int length = 1; int begin=0; .

2020-08-07 23:58:54 630

原创 【LeetCode刷题】数据库之困难题:569. 员工薪水中位数

思路:使用row_number()函数增加一列,用count()函数增加一列。再计算中位数。floor()函数作用:返回小于等于该值的最大整数。select id,company,salaryfrom( select id,company,salary, row_number() over(partition by company order by salary) as rank_num, count(*) over(partition by company) as c..

2020-08-07 21:56:47 137

原创 【LeetCode刷题】动态规划:53. 最大子序和

分析:使用动态规划来解题定义储存最大子序和的变量a,定义作相加计算的变量sum。遍历数组,当sum>0时将当前num累加。当sum<0时重新计算,num的值赋给sum。每层遍历的最后都需要将a与sum作比较,取最大值。class Solution { public int maxSubArray(int[] nums) { int a = nums[0]; int sum = 0; for(int num : nums){.

2020-08-06 15:17:07 45

原创 【LeetCode刷题】数据库之中等题:1454. 活跃用户

分析:datediff(l2.login_date,l1.login_date) between 0 and 4两个Logins表作笛卡尔积,上边的作为连接条件,得出左表每个日期对应右表1-5天的日期。group by l1.id,l1.login_datehaving count(distinct l2.login_date)=5以表1的id,login_date做分组,count(distinct l2.login_date)=5为条件,得出连续5天的id。结果:select a...

2020-07-30 20:20:03 177

原创 【LeetCode刷题】数据库之中等题:1280. 学生们参加各科测试的次数

思路:先用join把Students表与Subjects连接,再用count聚合select s.student_id,s.student_name,ss.subject_name,ifnull(count(e.subject_name),0) as attended_examsfrom Students s join Subjects ssleft join Examinations e on s.student_id=e.student_id and ss.subject_name=e....

2020-07-30 20:15:45 58

原创 【LeetCode刷题】数据库之中等题:550. 游戏玩法分析 IV

思路:先求出每对玩家的首次登录id和日期,将它作为临时表,与Activity关联,跟原表的日期做比较,相差一天的标为1。再将符合条件的相加,除以玩家总数。步骤:1、求出玩家首次登录的id和日期,作为临时表。select player_id,min(event_date) as fisrt_datefrom Activitygroup by player_id2、将Activity与临时表关联。select *from Activity a,(select player_id,min(..

2020-07-30 20:10:28 97

原创 【LeetCode刷题】数据库之中等题:534. 游戏玩法分析 III

解法一:窗口函数select player_id,event_date,sum(games_played) over(partition by player_id order by event_date) as games_played_so_farfrom Activity;解法二:自联结select a1.player_id,a1.event_date,sum(a2.games_played) as games_played_so_farfrom Activity a1,Activity..

2020-07-30 20:06:31 63

原创 【LeetCode刷题】数据库之中等题:177. 第N高的薪水

分析:该题为排名题,有时排名会分为3种情况,比如工资300,200,200,100不同实际场景对应的排名不同,可排成1-2-3-4,1-2-2-3,1-2-2-4这3种情况。解法1:用对salary进行排名,再用Limit取第n-1名,注意Limit不能直接用N-1,去取。Limit(N,M)表示从N+1行开始取M行。CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INTBEGIN set N=N-1; RETURN ( .

2020-07-30 20:01:13 56

原创 Hive窗口函数案例

数据准备:name,orderdate,costjack,2017-01-01,10 tony,2017-01-02,15 jack,2017-02-03,23 tony,2017-01-04,29 jack,2017-01-05,46 jack,2017-04-06,42 tony,2017-01-07,50 jack,2017-01-08,55 mart,2017-04-08,62 mart,2017-04-09,68 neil,2017-05-10,12 mart,2017-

2020-07-28 18:56:44 52

原创 Hive建表与数据的导入导出

目录1、建表2、数据导入的四种方式2.1 从本地或hdfs使用load上导入数据2.2 使用location加载数据2.3 使用insert into 从一个表的数据插入到另一个表2.4 使用as select 创建新表3、数据导出的两种方式3.1 导出到本地3.2 导出到hdfs4. partition分区表5. bucket分桶表1、建表内部表与外部表最大区别:drop删除时,表中的数据和元数据同时被删除(硬链接),而删除外部表,元数据会被删除,但是实际数据仍然存在(软连接),重新建一个表,就可以将

2020-07-28 18:51:30 47

原创 SparkSQL自定义聚类函数

数据:user.json{"id":1,"name":"zhangsan","age":10}{"id":2,"name":"lisi","age":30}{"id":3,"name":"wangwu","age":20}{"id":4,"name":"liuliu","age":40}需求:统计以上文件的平均年龄工具:idea语言:Scala代码:package com.testimport org.apache.spark.SparkConfimport org.apache

2020-07-28 18:43:04 101

原创 JAVA静态域与静态方法

先附上手敲的例子:class TestStatic{ public static void main(String[] args) { //不需要new一个S类对象,直接用"类名.方法名"或者"对象名.方法名"去调用。 System.out.println("调用S.getB():"+S.getB()); System.out.println("输出静态变量b:"+S.b); S s = new S(); //调用普

2020-07-03 13:38:23 125

原创 【LeetCode刷题】数据库之中等题:184. 部门工资最高的员工

题目:思路:先分组找出每个部门对应的最高工资select DepartmentId,max(Salary)from Employeegroup by DepartmentId再用IN从里头找到对应的员工MySQL:select d.Name as Department,e.name as Employee,e.Salaryfrom Employee as e join Department d on e.DepartmentId=d.idwhere(e.Departmen

2020-07-02 18:43:33 44

原创 【LeetCode刷题】数据库之中等题:178. 分数排名

题目:解法1:使用dense_rank()函数,DENSE_RANK()是连续排序,即如果有两条记录重复,接下来是第二级别,比如:1 2 2 3。扩展:相比下,还有rank()函数,RANK()是跳跃排序,即如果有两条记录重复,接下来是第三级别,比如:1 2 2 4。 还有一个row_number()函数,这个比较简单,无论什么,直接按数字排下来。select Score,dense_rank() over(order by Score desc) as 'Rank'from Scores;解法

2020-07-02 17:50:28 75

原创 【LeetCode刷题】数据库之中等题:1205. 每月交易II

SQL架构:create table if not exists Transactions (id int, country varchar(4), state enum('approved', 'declined'), amount int, trans_date date);create table if not exists Chargebacks (trans_id int, trans_date date);Truncate table Transactionsinsert into Tr

2020-07-01 10:40:36 109

原创 Mysql连接错误alibaba.druid.support.logging.JakartaCommonsLoggingImpl.error create connection SQLExceptio

具体报错如下:18-Jun-2020 10:01:10.426 严重 [Druid-ConnectionPool-Create-1158666489] com.alibaba.druid.support.logging.JakartaCommonsLoggingImpl.error create connection SQLException, url: jdbc:mysql://localhost:3306/facemask?serverTimezone=UTC&

2020-06-18 10:13:41 9641 5

原创 Git教程(超级详细)

文章目录一、安装Git二、创建仓库(repository)三、修改文件四、版本查看和版本回退五、撤销修改六、删除文件七、添加远程库和克隆仓库八、分支管理1.创建与分支管理2、Bug分支3、冲突解决4、标签管理一、安装GitWindows直接在官网上下载LinuxcentOS:$ yum install gitUbuntu:$ sudo apt-get install git安装后需要设置下$ git config --global user.name "Your Name"$ gi

2020-06-16 15:30:21 353

原创 LCS最长公共子序列详解与实践(附代码)

文章目录一、LCS定义二、作用三、求解(动态规划)四、数据结构五、MR实践(用LCS算出句子相似度)一、LCS定义最长公共子序列(Longest Common Subsequence)一个序列S任意删除若干个字符得到的新序列T,则T叫做S的子序列两个序列X和Y的公共子序列中,长度最长的那个,定义为X和Y的最长公共子序 列字符串12455与245576的最长公共子序列为2455字符串acdfg与adfc的最长公共子序列为adf注意区别最长公共子串(Longest Common Subst

2020-06-16 14:20:29 220

原创 Hadoop Streaming介绍与实战(附代码)

文章目录一、介绍1.1 streaming简介1.2 streaming优点1.3 streaming不足二、执行原理三、具体参数四、实践4.1 -file的应用4.2 -cacheFile的应用4.3 -cacheArchive的应用4.4 4.compression(压缩)4.5 全局排序(单个reduce)4.6 全局排序(多个reduce)4.7 共同好友一、介绍1.1 streaming简介Streaming框架允许任何程序语言实现的程序在Hadoop MapReduce中使用,方便已有程

2020-06-15 18:33:11 337

原创 MapRuduce详解

文章目录一、介绍二、执行流程2.1 单机计算2.2 Hadoop计算流程2.3 MapReduce执行流程2.4 工作原理2.5 物理配置三、代码实践一、介绍MapReduce是一个用于处理海量数据的分布式计算框架优点:编程模型+基础架构能够变编写在数百甚至上千台机器上运行的程序自动并行化分布容错(如果一台服务器宕机,作业可以由其他服务器完成)程序/作业调度、状态检查和监控缺点:MapReduce过于底层,编写Map,Reduce函数较为困难不是所有算法都能用MapReduce实

2020-06-15 17:20:35 198

原创 全面解析HDFS

一、介绍1.1 什么是HDFS?HDFS(Hadoop Distributed File System),作为Google File System(GFS)的实现,是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开发的,可以运行于廉价的商用服务器上。它所具有的高容错、高可靠性、高可扩展性、高获得性、高吞吐率等特征为海量数据提供了不怕故障的存储,为超大数据集(Large Data Set)的应用处理带来了很多便利。1.2 特点优点存储并

2020-06-15 15:46:30 127

原创 阿里云服务器搭建Hadoop集群
原力计划

这里写目录标题一、环境介绍二、修改hosts、hostname文件三、ssh互信四、安装java(只需在master操作,配置后再发送到slave机器)五、安装并配置Hadoop六、阿里云踩过的坑一、环境介绍服务器:一台阿里云服务器master,一台腾讯云服务器slave操作系统:centOS7Hadoop:hadoop-2.7.7.tar.gzJava:jdk-8u172-linux-...

2020-04-16 23:28:41 963

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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