- 博客(35)
- 资源 (2)
- 收藏
- 关注
原创 房贷还款方式等额本息等额本金比较和这两种提前还款的区别
计算规则数据:贷款总额80万,年限30年,商贷利率5.44(实际5.4%先按5.44模拟计算)等额本息:每月还款:4512.24元利息总额82.44万元还款总额:162.44万元月供总额不变,月供包含本金每月增加,月供利息不断减少等额本金:每月还款:5848.89元利息总额65.46万元还款总额145.46万元月供总额每月减少,月供包含本金不变,月供利息每月不断减少从一开始选择等额本金比选择等额本息总利息要少17万左右,不提前还款的情况
2022-05-22 16:47:08
1960
原创 大数据面试题--数仓
目录数据仓库理论数据分层E T L星形模型与雪花模型的区别?维度建模(dimensional modeling):数据仓库项目最重要或需要注意的是什么,以及如何处理?关系建模与维度建模拉链表:维度表和事实表数据仓库中的维度和粒度维度建模步骤:如何构建数据仓库?Flink面试题Flink的重启策略:Flink集群规模Flink 集群有哪些角色?各自有什么作用?TODO说说 Flink 资源管理中 Task Slot 的概念说说 Fli
2022-02-22 18:47:09
10197
1
原创 Hive实战企业级项目之谷粒影音统计各种TopN问题
说明:在学习hive的过程中,跟着尚硅谷教程做了一次hive的项目实战,作为对hive的结业学习。以shang是详细笔记。
2021-06-06 20:16:06
3596
4
原创 Hive的行转列列转行函数使用
行转列:函数说明:CONCAT(string A/col, string B/col…):返回输入字符串连接后的结果,支持任意个输入字符串;CONCAT_WS(separator, str1, str2,...):它是一个特殊形式的 CONCAT()。第一个参数剩余参数间的分隔符。分隔符可以是与剩余参数一样的字符串。如果分隔符是 NULL,返回值也将为 NULL。这个函数会跳过分隔符参数后的任何 NULL 和空字符串。分隔符将被加到被连接的字符串之间;注意: CONCAT_W
2021-05-30 19:24:24
1824
3
原创 Java面试之ThreadLocal的使用
ThreadLocal解决了什么问题?内部源码是怎么样的?作用:实现在线程的上下文传递对象,为每个线程创建一个副本。案例:public class ThreadLocalTest { private static ThreadLocal<Long> threadLocal = new ThreadLocal<>(); public static void main(String[] args) throws InterruptedException {
2020-12-06 20:50:50
2666
1
原创 彻底了解Redis的哨兵模式
概述:主从切换技术的方法是:当主服务器宕机后,需要手动把一台服务器切换为主服务器,这就需要人工干预,费时费力,还会造成一段时间内服务不可用,这不是一种推荐的方式,更多时候,我们优先考虑哨兵模式。谋朝篡位的自动版,能够自动监控主机是否故障,如果故障了根据投票数自动将从库转换为主库。哨兵模式是一种特殊的模式,首先redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵通过发送命令,等待redis服务器响应,从而监控运行的多个redis实例。这里的哨兵有两个作用
2020-11-14 02:10:51
2487
原创 轻松理解Redis的主从复制
概念:主从复制是指将一套redis服务器的数据,复制到其他的redis服务器,前者称为主节点,后者称为从节点;数据的复制是单向的,只能由主节点到从节点。master以写为主,slave以读为主。默认情况下,每台redis服务器都是主节点,且一个主节点可以有多个从节点,但一个从节点只能有一个主节点。主从复制的作用:1.数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。2.故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复,实际上是一种服务的冗余。
2020-11-14 01:57:15
2446
原创 快速理解Redis的持久化操作RDB和AOF
持久化RDB操作Redis是内存数据库,如果不将内存中的数据库状态保存到硬盘,那么一旦服务器进程退出,服务器中的数据库状态也会消失。所以Redis提供了持久化功能。在指定的事件间隔内将内存中的数据集快照写入磁盘,也就是Snapshot快照,它恢复时是将快照文件直接读到内存。Redis会单独创建fork一个子进程进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不进行任何IO操作的。这就确保了极高的性能。如果需要进行大
2020-11-14 01:31:12
2519
原创 工厂和抽象工厂设计模式
意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。主要解决:主要解决接口选择的问题。何时使用:我们明确地计划不同条件下创建不同实例时。如何解决:让其子类实现工厂接口,返回的也是一个抽象的产品。关键代码:创建过程在其子类执行。应用实例: 1、您需要一辆汽车,可以直接从工厂里面提货,而不用去管这辆汽车是怎么做出来的,以及这个汽车里面的具体实现。 2、Hibernate 换数据库只需换方言和驱动就可以。优点: 1、一个调用者想创建一个对象
2020-11-09 23:47:36
2386
原创 索引结构(BTree、B+Tree和Hash等)和分类(聚簇索引与非聚簇索引等)
索引是数据结构,可以简单理解为排好序的快速查找数据结构。数据本身以外,数据库还维护着一个满足特定查找算法的数据结构,这些数据结构以某种方式指向数据,这样就可以在这些数据结构 的基础上实现高级查找算法,这种数据结构就是索引。一般来说,索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储在磁盘上。B-TREE: (B:balance) 会自动根据两边的情况自动调节,使两端无限趋近于平衡状态。可以使性能最稳定。(myisam使用的方式) B-TREE弊端...
2020-11-09 23:09:10
3389
原创 MySQL锁机制表锁和行锁详解
锁的分类:从对数据操作的类型(读写)分:读锁(共享锁):针对同一份数据,多个读操作可以同时进行而不会互相影响写锁(排它锁):当前写操作没有完成前,它会阻断其他锁和读锁。从对数据操作的粒度分:表锁行锁表锁(偏读):特点:偏向MyISAM存储引擎,开销小,加锁快;无死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。案例:加读锁加写锁:结论:MyISAM在执行查询语句(SELECT)前,会自动给涉及的所有表加读锁,在执行...
2020-11-07 02:06:40
2609
原创 SpringBoot切换版本时项目访问不到thymeleaf页面404
由IDEA选择的版本2.1.16切换成1.5.10版本时,发现在项目正常启动时跳转themeleaf页面访问不到,报404。查看控制报错日志:发现是html文件解析错误。SpringBoot中thymeleaf的默认版本为:1.5.10.RELEAS<dependency> <groupId>org.springframewor...
2020-04-02 01:19:59
3333
原创 并发编程之使用Executor
Executor将用来管理Thread对象,Executor在客户端和任务之间提供了一个间接层,与客户端直接执行任务不同,这个中介将执行任务。Executor允许你管理异步任务的执行,而无须显式地管理线程的生命周期。Executor在Java SE5/6是启动任务的优选方法。ExecutorService:具有服务生命周期的Executor,知道如何构建恰当的上下文来执行Runnable...
2020-03-20 00:03:29
2481
原创 Java中print()方法的使用
在学习Java中,看到编程思想的代码里有print()方法,而当我练习时发现输入print()方法时引入的包并不是net.mindview.util.print.*包,原先以为是JDK版本不对。经过了解,原来是需要引入包。下面是分享链接:链接:https://pan.baidu.com/s/1lDc3LDX6mmzFGtjH6g21NQ提取码:1ksc方法:下载此包,导入IDEA...
2020-03-17 23:29:52
12464
1
原创 Java之动态代理详解
1.什么是动态代理?在运行时创建目标类,可以调用和扩展目标类的方法。动态代理利用Java的反射技术生成字节码,在运行时创建一个实现某些给定接口的新类及其实例。注意:这里代理的时接口,不是类和抽象类。2.动态代理的应用场景?DubboAOP in Spring3.怎么用动态代理?下面是应用动态代理的实例:3.1定义一个接口Interfacepublic inte...
2020-03-15 23:35:37
2521
原创 动态代理异常com.sun.proxy.$Proxy0 cannot be cast to
在学习动态代理的时候,发现控制台报错Exception in thread "main" java.lang.ClassCastException: com.sun.proxy.$Proxy0 cannot be cast to...下面是代码:public static void main(String[] args) { //要代理的真实对象 Pe...
2020-03-15 21:34:45
6851
1
原创 SpringBoot与日志
日志框架日志门面:SLF4j日志实现:LogbackSpringBoot:底层是Spring框架,Spring框架默认是应用JCL;SpringBoot选用SLF4j和Logback;SLF4j使用1.如何在系统中使用SLF4j以后开发的时候,日志记录方法的调用,不应该来直接调用日志的实现类,而是调用日志抽象层里面的方法。应该给系统里面导入slf...
2020-02-16 22:41:25
2433
原创 SpringBoot配置笔记超详细版
一、配置文件:文件名是固定的--SpringBoot使用一个全局的配置文件application.propertiesapplication.yml配置文件的作用:修改SpringBoot自动配置的默认值SpringBoot在底层都给我们自动配置好配置文件放在src/main/resources目录或者类路径/config下yml是YAML(YAML Ain't ...
2020-02-16 22:38:28
3151
2
原创 SpringBoot入门---史上最详细
特性:1.帮助开发者快速整合第三方常用框架2.完全不需要外部服务器运行,内嵌入服务器,原理Java语言创建tomcat3.完全采用注解形式替代了XML,原理因为Spring体系本身支持注解启动,只是做了包装优点:快速创建独立运行的Spring项目以及与主流框架集成使用嵌入式的Servlet容器,应用无需打成WAR包starters自动依赖与版本控制大量的自动配置,简...
2020-02-15 20:31:11
2644
原创 从简单例子深入理解hashMap的put和get原理
先来看一个简单的例子:HashMap<String, Integer> map = new HashMap<String, Integer>();map.put("语文", 1);map.put("数学", 2);map.put("英语", 3);map.put("历史", 4);map.put("政治", 5);map.put("地理", 6);ma...
2019-08-16 00:34:12
4033
原创 深入理解Java反射机制(总结)
什么是反射反射是Java程序员开发语言的特征之一,它允许运行中的Java出现获取自身的信息,并且可以操作类或对象的内部属性。通过反射机制,可以在运行时访问Java对象的属性,方法,构造方法等。反射的应用场景:开发通用框架:反射最重要的用途就是开发各种通用框架。很多框架都素hi配置化的,为了保证框架的通用性,它们可以需要根据配置文件加载不同的对象或类,调用不同的方法,这个时候就必须用...
2019-08-05 22:59:32
2541
原创 深入理解java泛型
为什么需要泛型?泛型是java SE1.5的新特性,泛型的本质是参数化类型,这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。在JavaSE1.5之前没有泛型的情况下只能通过对类型 Object的引用来实现参数的任意化,其带来的缺点是要做显式强制类型转换,而这种转化编译器是不做检查的,容易把问题留在运行时,所以泛型的好处是在编译时检查类型安全,并且所有的强制类型转...
2019-08-04 22:56:50
2529
原创 HashMap原理---HashMap是如何设计的?是如何解决冲突的?
1.HashMap是基于哈希表的Map接口的非同步实现。在Java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针引用,所有的数据结构都可以用这两个基本结构来构造的,HashMap也不例外。HashMap实际上是一个“链表的数组”的数据结构,每个元素存放链表头节点的数组,即数组和链表的结合体。HashMap底层就是一个数组结构,数组中的每一项又是一个链表。当新建一个HashMap...
2019-07-23 22:51:31
2594
原创 Java反射的Class.forName()和ClassLoader.loadClass的区别
Class.forName(className)方法,内部实际调用的方法是 Class.forName(className,true,classloader);第2个boolean参数表示类是否需要初始化, Class.forName(className)默认是需要初始化。一旦初始化,就会触发目标对象的 static块代码执行,static参数也也会被再次初始化。Clas...
2019-06-23 14:31:10
2635
原创 JAVA反射机制--Class类的作用
Class主要是反射的源头,不光可以取得对象所在类的信息,也可以通过Class类的方法进行对象的实例化操作,正常情况下,使用new关键字为对象实例化,如果现在已经实例化好了class对象,则就可以通过Class类中提供的newInstance()方法。publicTnewInstance()throwsInstantiationException,IllegalAccessExcept...
2019-06-16 16:07:36
2986
原创 JAVA反射机制--实例化Class类的三种方式及区别
在Object类中定义了以下的方法,此方法将被所有子类继承:public final Class getClass()以上方法返回值的类型是一个Class类,实际上此类是Java反射的源头,实际上所谓反射从程序的运行结果来看也很好理解,即:可以通过对象反射求出类的名称正常方式:引入需要的包、类名称,通过new实例化,取得实例化对象反射方式:实例化对象,getClass()方...
2019-06-16 14:49:09
4342
原创 由浅入深了解反射机制一:Class类
Class类的作用,反射的源头在Object类中定义了以下的方法,此方法将被所有子类继承:public final Class getClass()以上方法返回值的类型是一个Class类,实际上此类是Java反射的源头,实际上所谓反射从程序的运行结果来看也很好理解,即:可以通过对象反射求出类的名称正常方式:引入需要的包、类名称,通过new实例化,取得实例化对象反射方式...
2019-04-21 15:59:28
2562
原创 线程的那点事二----线程同步和线程安全
线程安全:实际开发中,使用多线程程序的情况很多,如银行排号系统、火车站售票系统等。这种多线程的程序通常会发生问题,以火车站售票为例:public class ThreadSafeTest implements Runnable{ int num =10; public void run() { while(true){ if(num>0){ try {...
2019-04-15 23:31:27
2421
原创 多线程的那点事一--线程的实现、生命周期、操作方法和优先级
实现多线程的两种方式:java中主要提供两种方式实现线程:分别为继承Thead类和实现Runnable接口。1.通过继承Thread类,重写Thread的run()方法,将线程运行的逻辑放在其中2.通过实现Runnable接口,实例化Thread类一、通过继承Thread类实现多线程class MyThread extends Thread{ String n...
2019-04-15 22:40:01
2409
原创 Map集合基础学习笔记
Map集合没有继承Collection接口,其提供的是key到value的映射。Map中不能包含相同的key,每个key只能映射一个value。key还决定了存储对象在映射中的存储位置,但不是由key对象本身决定的,而是通过一种散列技术进行处理,产生一个散列码的整数值。散列码通常用作一个偏移量,该偏移量对应分配给映射的内存区域的起始位置,从而确定存储对象在映射中的存储位置。Map集合...
2019-04-13 16:24:05
2486
原创 并发设计-使用线程的经验
并发三大定律:Amdahl 定律:即使你有10个老婆,也不能一个月把孩子生下来。Gustafson 定律:当你有10个老婆,就会要生更多的孩子。Sun-Ni 定律:你要设法让每个老婆都在干活,别让她们闲着。(这里就不一一说明每个定律的意思了,换个简单易懂的方式)1:无论何种方式,启动一个线程,就要给它一个名字!这对排错诊断系统监控有帮助。否则诊断问题时,无法直观知道某个线程的用...
2019-04-12 00:30:26
2375
翻译 Set集合学习详情笔记
Set集合中的对象不按特定的方式排序,只是简单地把对象加入集合中,但set集合中不能包含重复对象。Set集合由Set接口和Set接口的实现类组成。Set接口继承了Collection接口,因此包含Collection接口的所有方法。 Set的构造有一个约束条件,传入的Collection对象不能有重复值,必须小心操作可变对象。如果一个Set 中的可变元素改变了自身状态导致O...
2019-04-11 23:29:47
2596
原创 eclipse如何修改注释
本人想重点说明的是,在使用下面方法后注释还未达到预期的效果,可以修改eclipse.ini文件(在eclipse的安装目录下),然后重启就可以了。方法一:Eclipse中设置在创建新类时自动生成注释windows-->preferenceJava-->Code Style-->Code Templatescode-->new Java files编辑它...
2019-04-11 22:22:05
4396
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人