Loading

12 2021 档案

摘要:访问时长:把session的最后一个action的时间,减去第一个action的时间 访问步长:session的action数量 session访问时长,也就是说一个session对应的开始的action,到结束的action,之间的时间范围; 访问步长,指的是,一个session执行期间内,依次点 阅读全文
posted @ 2021-12-31 11:33 Zhbeii 阅读(279) 评论(0) 推荐(0)
摘要:引用JDBC相关的所有接口或者是抽象类的时候,必须导java.sql的包,方便后期的维护和管理 整体 1、加载驱动类:Class.forName() 2、获取数据库连接:DriverManager.getConnection() 3、创建SQL语句执行句柄:Connection.createStat 阅读全文
posted @ 2021-12-30 17:50 Zhbeii 阅读(57) 评论(0) 推荐(0)
摘要:Serializability of a class is enabled by the class implementing the java.io.Serializable interface. Classes that do not implement this interface will 阅读全文
posted @ 2021-12-30 17:18 Zhbeii 阅读(49) 评论(0) 推荐(0)
摘要:https://www.cnblogs.com/three-fighter/p/14396208.html 阅读全文
posted @ 2021-12-30 09:26 Zhbeii 阅读(20) 评论(0) 推荐(0)
摘要:* 配置管理组件 * * 1、配置管理组件可以复杂,也可以很简单,对于简单的配置管理组件来说,只要开发一个类,可以在第一次访问它的 * 时候,就从对应的properties文件中,读取配置项,并提供外界获取某个配置key对应的value的方法 * 2、如果是特别复杂的配置管理组件,那么可能需要使用一 阅读全文
posted @ 2021-12-29 21:32 Zhbeii 阅读(52) 评论(0) 推荐(0)
摘要:Java中,每一个类第一次使用的时候,就会被Java虚拟机(JVM)中的类加载器,去从磁盘上的.class文件中加载出来,然后为每个类都会构建一个Class对象,就代表了这个类 每个类在第一次加载的时候,都会进行自身的初始化,那么类初始化的时候,会执行哪些操作的呢? 就由每个类内部的static { 阅读全文
posted @ 2021-12-29 18:28 Zhbeii 阅读(56) 评论(0) 推荐(0)
摘要:累加器用来把 Executor 端变量信息聚合到 Driver 端。在 Driver 程序中定义的变量,在Executor 端的每个 Task 都会得到这个变量的一份新的副本,每个 task 更新这些副本的值后,传回 Driver 端进行 merge。 从Accumulator中,获取数据,插入数据 阅读全文
posted @ 2021-12-29 16:30 Zhbeii 阅读(316) 评论(0) 推荐(0)
摘要:RDD Cache缓存 RDD 通过 Cache 或者 Persist 方法将前面的计算结果缓存,默认情况下会把数据以缓存在 JVM 的堆内存中。但是并不是这两个方法被调用时立即缓存,而是触发后面的 action 算子时,该 RDD 将会被缓存在计算节点的内存中,并供后面重用 存储级别: 如果级别名 阅读全文
posted @ 2021-12-29 15:20 Zhbeii 阅读(143) 评论(0) 推荐(0)
摘要:https://leetcode-cn.com/problems/xuan-zhuan-shu-zu-de-zui-xiao-shu-zi-lcof/ 最坏的时间复杂度是O(n)的 思路: 先把后面的末尾与前面的开始的那段去掉(因为可能有重复的数字) 处理数组完全单调的特殊情况:去掉重复的之后num 阅读全文
posted @ 2021-12-28 23:08 Zhbeii 阅读(24) 评论(0) 推荐(0)
摘要:若干方法: https://www.acwing.com/blog/content/25/ 阅读全文
posted @ 2021-12-28 22:46 Zhbeii 阅读(32) 评论(0) 推荐(0)
摘要:DAO模式 Data Access Object:数据访问对象 首先,你的应用程序,肯定会有业务逻辑的代码。在三层架构的web系统中,业务逻辑的代码,就是在你的Service组件里面;在我们的spark作业中,业务逻辑代码就是在我们的spark作业里面。 如果说,你不用DAO模式的话,那么所有的数据 阅读全文
posted @ 2021-12-28 18:52 Zhbeii 阅读(67) 评论(0) 推荐(0)
摘要:JavaBean:类 JavaBean,虽然就是一个类,但是是有特殊条件的一个类,不是所有的类都可以叫做JavaBean的 首先,它需要有一些field,这些field,都必须用private来修饰,表示所有的field,都是私有化的,不能随意的获取和设置 其次,需要给所有的field,都提供对应的 阅读全文
posted @ 2021-12-28 18:07 Zhbeii 阅读(87) 评论(0) 推荐(0)
摘要:外部类: 最普通的,我们平时见到的那种类,就是在一个后缀为.java的文件中,直接定义的类,比如 public class Student { private String name; private int age; } 内部类: 内部类,顾名思义,就是包含在外部类中的类,就叫做内部类。内部类有两 阅读全文
posted @ 2021-12-28 17:33 Zhbeii 阅读(110) 评论(0) 推荐(0)
摘要:public class Singleton{ private static Singleton instance = null; private Singleton(){ } private static Singleton getInatnce(){ if(instance == null){ 阅读全文
posted @ 2021-12-28 15:20 Zhbeii 阅读(36) 评论(0) 推荐(0)
摘要:原因 在执行shuffle操作的时候,是按照key,来进行values的数据的输出、拉取和聚合的。 同一个key的values,一定是分配到一个reduce task进行处理的。 多个key对应的values,假设是90万。但是问题是,可能某个key对应了88万数据,key-88万values,分配 阅读全文
posted @ 2021-12-28 11:15 Zhbeii 阅读(102) 评论(0) 推荐(0)
摘要:以前序遍历为基准,找到root 把中序遍历当工具,找到root的位置,以此找出原树中左子树的数目,右子树的数目 然后再使用递归左右子树 class Solution { int [] preorder; HashMap<Integer, Integer> dic = new HashMap<>(); 阅读全文
posted @ 2021-12-27 22:47 Zhbeii 阅读(42) 评论(0) 推荐(0)
摘要:字节流:默认不使用缓冲区 字符流:默认使用缓冲区 Block-IO 四个基本抽象类:Block-IO:InputStream,OutputStream ; Reader和Writer 字节流的抽象基类 InputStream,OutputStream 阅读全文
posted @ 2021-12-27 21:46 Zhbeii 阅读(30) 评论(0) 推荐(0)
摘要:集合有两大接口Collection Map List:有序,可重复 Set:无序,不可重复 Queue:按特定的排队规则来确定先后顺序,存储的元素是有序的,可重复的 Map:键值对 List: ArrayList : Object[] 数组 Vector: Object[] 数组 LinkedLis 阅读全文
posted @ 2021-12-27 21:09 Zhbeii 阅读(33) 评论(0) 推荐(0)
摘要:抛出异常:创建异常对象,交由运行时系统处理 捕获异常;寻找合适的异常处理器处理异常,否则终止运行 Java异常处理消耗性能的地方 try-catch块影响JVM的优化 异常处理对象需要保存栈快照等信息,开销较大 阅读全文
posted @ 2021-12-27 20:47 Zhbeii 阅读(38) 评论(0) 推荐(0)
摘要:Error 和 Exception的区别 Error:程序无法处理的系统错误,编译器不做检查 Expection:程序可以处理的异常,捕获后可能恢复 Exception RunTimeException:不可预知的,程序应当自行避免 非RunTimeException:可预知的,从编译器检验的异常 阅读全文
posted @ 2021-12-27 18:33 Zhbeii 阅读(45) 评论(0) 推荐(0)
摘要:记录每条信息的生命周期:一单一条记录的生命周期结束,就重新开始一条新的记录,并把当前日期放入生效开始日期 如果信息当前还有效,就在生效结束日期中填入一个极大值(9999-99-99) 阅读全文
posted @ 2021-12-27 15:57 Zhbeii 阅读(47) 评论(0) 推荐(0)
摘要:模型的选择: 星型模型 雪花模型 星座模型 阅读全文
posted @ 2021-12-27 14:07 Zhbeii 阅读(99) 评论(0) 推荐(0)
摘要:维度表: 一般是对事实的描述信息。每一张维表对应现实世界中的一个对象或者概念。 例如:用户、商品、日期、地区等 特征: 维表的范围很宽(具有多个属性、列比较多) 跟事实表相比,行数相对较小:通常< 10万条 内容相对固定:编码表 事实表 事实表中的每行数据代表一个业务事件(下单、支付、退款、评价等) 阅读全文
posted @ 2021-12-27 12:38 Zhbeii 阅读(788) 评论(0) 推荐(0)
摘要:开辟新字符串 在java中,字符串是不可变类型,无法原地修改,所以需要开辟一个新的字符串,遍历原字符串,不是空格直接添加,如果是空格的话,直接添加“%20” class Solution { public String replaceSpace(String s) { StringBuilder r 阅读全文
posted @ 2021-12-27 10:17 Zhbeii 阅读(44) 评论(0) 推荐(0)
摘要:关系建模将复杂的数据抽象为两个概念——实体和关系,并使用规范化的方式表示出来。 关系模型严格遵循第三范式(3NF),数据冗余程度低,数据的一致性容易得到保证。由于数据分布于众多的表中,查询会相对复杂,在大数据的场景下,查询效率相对较低 eg: 维度模型以数据分析作为出发点,不遵循三范式,故数据存在一 阅读全文
posted @ 2021-12-26 22:18 Zhbeii 阅读(199) 评论(0) 推荐(0)
摘要:图来自尚硅谷 函数依赖 第一范式核心原则:属性不可切割 eg: 第二范式核心原则:不能存在(非主键字段)部分函数依赖于(主键字段) 第二范式核心原则:不能存在传递函数依赖 阅读全文
posted @ 2021-12-26 22:17 Zhbeii 阅读(86) 评论(0) 推荐(0)
摘要:int是用来声明的,默认是0 integer是用来引用的,默认是null。某些类的方法说明中参数是Object类型,传入的是整形的话用integer 阅读全文
posted @ 2021-12-25 13:48 Zhbeii 阅读(93) 评论(0) 推荐(0)
摘要:continue 语句是跳过循环体中剩余的语句而强制执行下一次循环,其作用为结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。 continue 语句类似于 break 语句,但它只能出现在循环体中。它与 break 语句的区别在于:continue 并不是中断循环语 阅读全文
posted @ 2021-12-24 21:23 Zhbeii 阅读(797) 评论(0) 推荐(0)
摘要:![image](https://img2020.cnblogs.com/blog/2138338/202112/2138338-20211223171805261-114536239.png) 阅读全文
posted @ 2021-12-23 22:45 Zhbeii 阅读(22) 评论(0) 推荐(0)
摘要:正确的停止线程 使用interrupu来通知,而不是强制 interrupu仅仅是通知,线程本身具有决定权是否终止,原因:线程本身了解自己的运行状态,即:自己的任务是不是已经完成了,所以把决定权交给线程自己 public class RightWayStop implements Runnable 阅读全文
posted @ 2021-12-22 23:54 Zhbeii 阅读(44) 评论(0) 推荐(0)
摘要:start()与run()的比较 public class StartAndRunMethod { public static void main(String[] args) { Runnable runnable = () ->{ System.out.println(Thread.curren 阅读全文
posted @ 2021-12-22 23:33 Zhbeii 阅读(41) 评论(0) 推荐(0)
摘要:public class wrongways { public static void main(String[] args) { ExecutorService executorService = Executors.newCachedThreadPool(); for(int i = 0;i < 阅读全文
posted @ 2021-12-22 21:49 Zhbeii 阅读(79) 评论(0) 推荐(0)
摘要:实现Runnable接口 public class RunnableStyle implements Runnable { public static void main(String[] args) { Thread thread = new Thread(new RunnableStyle()) 阅读全文
posted @ 2021-12-22 21:34 Zhbeii 阅读(86) 评论(0) 推荐(0)
摘要:原地交换(优解) 遍历数组,如果存在某个数不在0到n-1的范围内,返回-1。 每个数放到对应的位置上,即让 nums[i] = i 从前往后遍历数组中的所有数 如果对应的值不等于所在地址的值,交换值到对应的地址上,即:nums = x 时间复杂度分析 每次swap操作都会将一个数放在正确的位置上,最 阅读全文
posted @ 2021-12-17 21:02 Zhbeii 阅读(36) 评论(0) 推荐(0)
摘要:递归、分治 位运算 阅读全文
posted @ 2021-12-16 20:13 Zhbeii 阅读(42) 评论(0) 推荐(0)
摘要:递归 class Solution { public boolean isValidBST(TreeNode root) { return isValidBST(root, Long.MIN_VALUE, Long.MAX_VALUE); } public boolean isValidBST(Tr 阅读全文
posted @ 2021-12-14 15:54 Zhbeii 阅读(38) 评论(0) 推荐(0)
摘要:排序(优解) 先排序,选第一个数,用两个指针分别指向剩下的第一个数和最后的数,相加比较,大的话动二指针,小的话动一指针,如果重合还没有那么就返回 class Solution { public List<List<Integer>> threeSum(int[] nums) { Arrays.sor 阅读全文
posted @ 2021-12-14 15:34 Zhbeii 阅读(36) 评论(0) 推荐(0)
摘要:排序 按照字典的顺序排序,再比较排序好的单词 O(n*logn) 哈希 O(n) 使用数组映射(性能更好,本质也是哈希表) class Solution { public boolean isAnagram(String s, String t) { if (s.length() != t.leng 阅读全文
posted @ 2021-12-14 12:32 Zhbeii 阅读(42) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/FFsvWXiaZK96PtUg-mmtEw 703. 数据流中的第 K 大元素 https://leetcode-cn.com/problems/kth-largest-element-in-a-stream/ class KthLargest 阅读全文
posted @ 2021-12-14 09:41 Zhbeii 阅读(73) 评论(0) 推荐(0)
摘要:![image](https://img2020.cnblogs.com/blog/2138338/202112/2138338-20211213233630764-1130067475.png) 阅读全文
posted @ 2021-12-13 23:37 Zhbeii 阅读(19) 评论(0) 推荐(0)
摘要:https://leetcode-cn.com/problems/valid-parentheses/ 阅读全文
posted @ 2021-12-13 23:15 Zhbeii 阅读(17) 评论(0) 推荐(0)
摘要:哈希表 遍历将结点存储在哈希表中,如果遇到环的入口,会检测到 public class Solution { public boolean hasCycle(ListNode head) { Set<ListNode> seen = new HashSet<ListNode>(); while (h 阅读全文
posted @ 2021-12-13 21:16 Zhbeii 阅读(27) 评论(0) 推荐(0)
摘要:链表 反转链表 https://leetcode-cn.com/problems/fan-zhuan-lian-biao-lcof/ https://www.cnblogs.com/zhbeii/p/15422709.html 两两交换相邻 https://leetcode-cn.com/probl 阅读全文
posted @ 2021-12-13 20:50 Zhbeii 阅读(19) 评论(0) 推荐(0)
摘要:使用递归 使用的这个递归又把我弄糊涂了,只能是暂时理解这4个,如果把他想成一个整体的话,有head、next,还有一个后续的结点,前面还是有一个 class Solution { public ListNode swapPairs(ListNode head) { if(head == null | 阅读全文
posted @ 2021-12-13 20:46 Zhbeii 阅读(34) 评论(0) 推荐(0)
摘要:遍历路径 遍历两个结点向上的路径,看第一个重合的结点 遍历全部 遍历整个树, class Solution { public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { while(root != nu 阅读全文
posted @ 2021-12-13 15:58 Zhbeii 阅读(37) 评论(0) 推荐(0)
摘要:数组越界: head为空指针; k大于链表的长度; 输入的参数k为0; public class Solution { public ListNode FindKthToTail (ListNode head, int k) { ListNode slow = head, fast = head; 阅读全文
posted @ 2021-12-12 11:13 Zhbeii 阅读(42) 评论(0) 推荐(0)
摘要:物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由 1、0 转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的模数转换与数模转换)。这一层的数据叫做比特 数据链路层:主要将从物理层接收的数据进行 MAC 地址 阅读全文
posted @ 2021-12-02 09:44 Zhbeii 阅读(89) 评论(0) 推荐(0)
摘要:Serial 垃圾收集器(单线程、复制算法) Serial(英文连续)是最基本垃圾收集器,使用复制算法,曾经是 JDK1.3.1 之前新生代唯一的垃圾收集器。Serial 是一个单线程的收集器,它不但只会使用一个 CPU 或一条线程去完成垃圾收集工作,并且在进行垃圾收集的同时,必须暂停其他所有的工作 阅读全文
posted @ 2021-12-01 21:45 Zhbeii 阅读(73) 评论(0) 推荐(0)
摘要:分代收集算法 当前主流 VM 垃圾收集都采用”分代收集”(Generational Collection)算法, 这种算法会根据对象存活周期的不同将内存划分为几块, 如 JVM 中的 新生代、老年代、永久代,这样就可以根据各年代特点分别采用最适当的 GC 算法 在新生代-复制算法 每次垃圾收集都能发 阅读全文
posted @ 2021-12-01 21:02 Zhbeii 阅读(57) 评论(0) 推荐(0)
摘要:强引用 在 Java 中最常见的就是强引用,把一个对象赋给一个引用变量,这个引用变量就是一个强引用。当一个对象被强引用变量引用时,它处于可达状态,它是不可能被垃圾回收机制回收的,即使该对象以后永远都不会被用到 JVM 也不会回收。因此强引用是造成 Java 内存泄漏的主要原因之一。 软引用 软引用需 阅读全文
posted @ 2021-12-01 20:21 Zhbeii 阅读(236) 评论(0) 推荐(0)
摘要:引用计数法 在 Java 中,引用和对象是有关联的。如果要操作对象则必须用引用进行。因此,很显然一个简单的办法是通过引用计数来判断一个对象是否可以回收。简单说,即一个对象如果没有任何与之关联的引用,即他们的引用计数都不为 0,则说明对象不太可能再被用到,那么这个对象就是可回收对象。 可达性分析 ​ 阅读全文
posted @ 2021-12-01 20:13 Zhbeii 阅读(51) 评论(0) 推荐(0)
摘要:Java 堆从 GC 的角度还可以细分为: 新生代(Eden 区、From Survivor 区和 To Survivor 区)和老年代。 新生代 是用来存放新生的对象。一般占据堆的 1/3 空间。由于频繁创建对象,所以新生代会频繁触发MinorGC 进行垃圾回收。新生代又分为 Eden 区、Ser 阅读全文
posted @ 2021-12-01 19:36 Zhbeii 阅读(67) 评论(0) 推荐(0)
摘要:JVM 内存区域主要分为线程私有区域【程序计数器、虚拟机栈、本地方法区】、线程共享区域【JAVA 堆、方法区】、直接内存 线程私有区域 线程私有区域:生命周期与线程相同,随用户线程的 启动/结束 而 创建/销毁 。 (在 HotspotVM 内,每个线程都与操作系统的本地线程直接映射,因此这部分内存 阅读全文
posted @ 2021-12-01 15:30 Zhbeii 阅读(90) 评论(0) 推荐(0)
摘要:这里说的线程时程序执行过程中的一个线程实体,JVM允许一个应用并发执行多个线程。Hostspot JVM 中的Java线程与原生操作系统线程有直接映射的关系,当线程所需资源准备好了之后(线程本地存储、缓冲区分配、同步对象、栈、程序计数器等),就会创建一个操作系统原生线程,原生线程初始化完成后,就会调 阅读全文
posted @ 2021-12-01 14:30 Zhbeii 阅读(180) 评论(0) 推荐(0)