摘要:
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该 阅读全文
随笔档案-2020年03月
Java总结
2020-03-29 19:27 by DataBases, 194 阅读, 收藏, 编辑
摘要:
Java虚拟机: Class Loader:依据特定格式,加载class文件到内存; Execution Engine:对命令进行解析; Native Interface:融合不同开发语言的原生库为Java所用; Runtime Data Area:JVM内存空间的结构模型; Java反射: Jav 阅读全文
Hive优化
2020-03-29 19:03 by DataBases, 212 阅读, 收藏, 编辑
摘要:
整体架构优化点: 根据不同业务需求进行日期分区, 并执行类型动态分区。 hive.exec.dynamic.partition=true 为了减少磁盘存储空间以及I/O次数, 对数据进行压缩(Gzip) mapreduce.output.fileoutputformat.compress=true 阅读全文
MySQL索引
2020-03-24 20:55 by DataBases, 445 阅读, 收藏, 编辑
摘要:
https://www.cs.usfca.edu/~galles/visualization/source.html 使用索引的原因 1.通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 2.可以大大加快 数据的检索速度(大大减少的检索的数据量), 这也是创建索引的最主要的原因。 3.帮助 阅读全文
Hive数据分析及优化
2020-03-23 20:57 by DataBases, 801 阅读, 收藏, 编辑
摘要:
(base) [root@pyspark conf]# cat hive-site.xml<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet type="text/xsl" href="configuratio 阅读全文
Hive开发UDF
2020-03-23 17:58 by DataBases, 326 阅读, 收藏, 编辑
摘要:
<dependencies> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>2.7.3</version> </dependency> <depend 阅读全文
mvn验证信息
2020-03-23 17:57 by DataBases, 340 阅读, 收藏, 编辑
摘要:
C:\Users\星环科技>mvn help:system[INFO] Scanning for projects...[INFO][INFO] [INFO] Building Maven Stub Project (No POM) 1[INFO] [INFO][INFO] maven-help-p 阅读全文
Kafka
2020-03-23 17:54 by DataBases, 303 阅读, 收藏, 编辑
摘要:
Kafka 是一个分布式流式处理平台。 三个关键功能: 消息队列:发布和订阅消息流,这个功能类似于消息队列,这也是 Kafka 也被归类为消息队列的原因。 容错的持久方式存储记录消息流: Kafka 会把消息持久化到磁盘,有效避免了消息丢失的风险·。 流式处理平台: 在消息发布的时候进行处理,Kaf 阅读全文
Zookeeper
2020-03-23 14:48 by DataBases, 253 阅读, 收藏, 编辑
摘要:
ZooKeeper 是一个开源的分布式协调服务,成为Hadoop,HBase和其他分布式框架使用的有组织服务的标准。 例如,Apache HBase使用ZooKeeper跟踪分布式数据的状态。ZooKeeper 的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并 阅读全文
Java中的锁
2020-03-23 13:42 by DataBases, 294 阅读, 收藏, 编辑
摘要:
悲观锁 总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做 阅读全文
JVM垃圾回收
2020-03-23 00:38 by DataBases, 220 阅读, 收藏, 编辑
摘要:
如何判断对象是否死亡(两种方法)。 简单的介绍一下强引用、软引用、弱引用、虚引用(虚引用与软引用和弱引用的区别、使用软引用能带来的好处)。 如何判断一个常量是废弃常量 如何判断一个类是无用的类 垃圾收集有哪些算法,各自的特点? HotSpot 为什么要分为新生代和老年代? 常见的垃圾回收器有哪些? 阅读全文
String 类和常量池
2020-03-22 23:52 by DataBases, 267 阅读, 收藏, 编辑
摘要:
String 对象的两种创建方式: String str1 = "abcd";//先检查字符串常量池中有没有"abcd",如果字符串常量池中没有,则创建一个,然后 str1 指向字符串常量池中的对象,如果有,则直接将 str1 指向"abcd""; String str2 = new String( 阅读全文
Java 对象的创建过程
2020-03-22 23:35 by DataBases, 303 阅读, 收藏, 编辑
摘要:
Step1:类加载检查 虚拟机遇到一条 new 指令时,首先将去检查这个指令的参数是否能在常量池中定位到这个类的符号引用,并且检查这个符号引用代表的类是否已被加载过、解析和初始化过。如果没有,那必须先执行相应的类加载过程。 Step2:分配内存 在类加载检查通过后,接下来虚拟机将为新生对象分配内存。 阅读全文
Java线程池
2020-03-22 17:31 by DataBases, 213 阅读, 收藏, 编辑
摘要:
内存模型 为了保证共享内存的正确性(可见性、有序性、原子性),内存模型定义了共享内存系统中多线程程序读写操作行为的规范。通过这些规则来规范对内存的读写操作,从而保证指令执行的正确性。它与处理器有关、与缓存有关、与并发有关、与编译器也有关。他解决了CPU多级缓存、处理器优化、指令重排等导致的内存访问问 阅读全文
Java synchronized
2020-03-22 15:23 by DataBases, 259 阅读, 收藏, 编辑
摘要:
synchronized关键字解决的是多个线程之间访问资源的同步性,synchronized关键字可以保证被它修饰的方法或者代码块在任意时刻只能有一个线程执行。另外,在 Java 早期版本中,synchronized属于重量级锁,效率低下,因为监视器锁(monitor)是依赖于底层的操作系统的 Mu 阅读全文
String 和 StringBuffer、StringBuilder
2020-03-21 21:04 by DataBases, 272 阅读, 收藏, 编辑
摘要:
可变性 String 类中使用 final 关键字字符数组保存字符串; private final char value[];,所以 String对象是不可变的。 public final class String implements java.io.Serializable, Comparabl 阅读全文
Java中的线程调度
2020-03-21 17:41 by DataBases, 470 阅读, 收藏, 编辑
摘要:
1. 抢占式调度: 抢占式调度指的是每条线程执行的时间、线程的切换都由系统控制,系统控制指的是在系统某种运行机制下, 可能每条线程都分同样的执行时间片,也可能是某些线程执行的时间片较长,甚至某些线程得不到执行的时间片。在这种机制下,一个线程的堵塞不会导致整个进程堵塞。 2. 协同式调度: 协同式调度 阅读全文
Java锁
2020-03-21 17:13 by DataBases, 241 阅读, 收藏, 编辑
摘要:
1. 乐观锁 乐观锁是一种乐观思想,即认为读多写少,遇到并发写的可能性低,每次去拿数据的时候都认为别人不会修改,所以不会上锁; 但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,采取在写时先读出当前版本号,然后加锁操作(比较跟上一次的版本号,如果一样则更新), 如果失败则要重复读-比较-写 阅读全文
Java线程中方法
2020-03-21 17:07 by DataBases, 246 阅读, 收藏, 编辑
摘要:
stop方法终止线程(线程不安全) 程序中可以直接使用thread.stop()来强行终止线程,但是stop方法是很危险的,就象突然关闭计算机电源,而不是按正常程序关机一样,可能会产生不可预料的结果,不安全主要是:thread.stop()调用之后,创建子线程的线程就会抛出ThreadDeather 阅读全文
Java中的引用
2020-03-21 16:40 by DataBases, 241 阅读, 收藏, 编辑
摘要:
JAVA 四中引用类型2.5.1. 强引用在Java中最常见的就是强引用,把一个对象赋给一个引用变量,这个引用变量就是一个强引用。当一个对象被强引用变量引用时,它处于可达状态,它是不可能被垃圾回收机制回收的,即使该对象以后永远都不会被用到JVM也不会回收。因此强引用是造成Java内存泄漏的主要原因之 阅读全文
MapReduce
2020-03-20 23:44 by DataBases, 255 阅读, 收藏, 编辑
摘要:
MapReduce对计算的抽象: Map:以一条记录为单位做映射; -映射,变换,过滤 -1进N出 Reduce:以一组为单位做计算;分组,依赖一种数据格式(key,value),key,value的实现是由map映射实现的; -分解,缩小,归纳 -一组进N出 -(key,value):键值对的键划 阅读全文
JVM
2020-03-20 23:43 by DataBases, 204 阅读, 收藏, 编辑
摘要:
JVM是可运行Java代码的假想计算机,包括一套字节码指令集,一组寄存器,一个栈,一个垃圾回收,堆和一个存储方法域。JVM运行在操作系统之上,它与硬件没有直接的交互。 1.8之前 1.8 JVM1.java代码的执行 代码编译为class文件,javac 装载class文件,classLoader 阅读全文
Java多线程
2020-03-20 23:42 by DataBases, 169 阅读, 收藏, 编辑
摘要:
Thread类本质上是实现了Runnable接口的一个实例,代表一个线程的实例。 启动线程的唯一方法就是通过Thread类的start()实例方法。start()方法是一个native方法,它将启动一个新线程,并执行run()方法。 线程start()方法调用Thread 的native方法 pri 阅读全文
SparkRDD
2020-03-14 15:41 by DataBases, 140 阅读, 收藏, 编辑
摘要:
http://homepage.cs.latrobe.edu.au/zhe/ZhenHeSparkRDDAPIExamples.html 阅读全文