编程语言
干就完了呗!
Kafka_Hive_Flink
种一颗树最好的时间是十年前,其次是现在
展开
-
【Linux】一行命令使集群时间与网络同步
很多框架会因为节点之间的连接时间超时出现各种问题,这时只需要通过 ntpdate 0.cn.pool.ntp.org 命令使各个节点的时间跟网络时间同步即可。原创 2020-06-23 19:56:24 · 190 阅读 · 0 评论 -
【Linux&Shell】学习笔记之Shell命令
文章目录> 帮助命令-- man 获得帮助信息-- help 获得shell内置命令的帮助信息-- 常用快捷键> 文件目录类-- pwd 显示当前工作目录的绝对路径-- ls 列出目录的内容-- cd 切换目录-- mkdir 创建一个新的目录-- rmdir 删除一个空的目录-- touch 创建空文件-- cp 复制文件或目录-- rm 移除文件或目录-- mv 移动文件与目录或重命名-- cat 查看文件内容-- more 文件内容分屏查看器-- less 分屏显示文件内容-- ech原创 2020-05-29 14:15:38 · 512 阅读 · 0 评论 -
【Linux】问题记录:sudo设了nopasswd,但是不起作用
有的时候你的将用户设了nopasswd,但是不起作用,原因是被后面的group的设置覆盖了,需要把group的设置也改为nopasswd。解决办法:visudo 或者 vi /etc/sudoers加入:atguigu ALL=(ALL) NOPASSWD: ALL%admin ALL=(ALL) NOPASSWD: ALL比如:...原创 2020-11-03 23:46:07 · 2515 阅读 · 2 评论 -
【JAVA】对象数组的浅拷贝和深拷贝
1、浅拷贝const _ = require('lodash');let one_brand = [ {name: 'A', count: 1, value: Infinity}, {name: 'B', count: 2},]// 浅拷贝// 方法一let two_brand = one_brand.slice(0);// 方法二(推荐)let two_brand = _.clone(one_brand) console.log("改变前:")console.lo原创 2020-07-05 10:06:17 · 451 阅读 · 0 评论 -
【Java】String、StringBuffer以及StringBuilder的区别?
String、StringBuffer以及StringBuilder的区别?既然在Java中已经存在了String类,那为什么还需要StringBuilder和StringBuffer类呢?一起来看下面的代码 public class Main { public static void main(String[] args) { String string = ""; for(int i=0;i<10000;i+..原创 2020-06-27 13:34:54 · 139 阅读 · 0 评论 -
【Java】说HashMap链表长度超过8就会转换成红黑树的出来挨打!
先上结论:在极限情况下,某一个位置链表长度达到11时,才会转换成红黑二叉树结构。这个极限情况指的是每次都是因为某个位置链表长度而导致的数组扩容,比如说数据只向数组中一个位置添加数据。网上很多人说jdk1.8后HashMap链表长度超过8就会转换成红黑树,通过源码阅读和测试后已经可以确定并不是超过8个就变红黑树,链表长度超过8,只是会尝试转换为二叉树,转换前,首先判断数组容量是否足够大,如果不够大,则进行扩容,发现长度小(未达到64),则扩容为原来的2倍,如果达到64,假设数组某个位置链表长度已经为10.原创 2020-05-30 15:05:17 · 3193 阅读 · 8 评论 -
【Java】你真的理解父子类的含义吗? protected关键字你真的会用吗?
如题,User05 的对象user,为什么不能直接调用clone()方法呢?package com.atguigu.bigdata.java.chapter06;;/** * @author Nien * @create 2020-05-25 */public class Java05_Access { public static void main(String[] args) throws Exception { User05 user = new User05(原创 2020-05-25 12:31:40 · 222 阅读 · 0 评论 -
【Java】sleep方法究竟是让哪个线程睡眠?main方法中不能将所指定线程休眠?
sleep最好使用在run方法的内部,因为写在run方法内部可以让该线程休眠.既然在main方法中不能将本指定线程休眠,那sleep一般怎么用呢?1.一般在想要睡眠线程的run()方法中让当前线程休眠,因为之所以会有线程,就是多个线程操作同一资源,只要在资源操作的run( )方法中使用sleep比较有意义。2.如果是想交替使用,那么使用wait + notify 结合使用3.如果是等待线程的结果,那么就使用join的方式sleep究竟是让哪一个线程休眠?1.调用某一个线程类的对象t...原创 2020-05-24 18:36:15 · 2588 阅读 · 1 评论 -
【Java基础】乐观锁和悲观锁
前言关于线程安全一提到可能就是加锁,在面试中也是面试官百问不厌的考察点,往往能看出面试者的基本功和是否对线程安全有自己的思考。那锁本身是怎么去实现的呢?又有哪些加锁的方式呢?我今天就简单聊一下乐观锁和悲观锁,他们对应的实现 CAS ,Synchronized,ReentrantLock正文 一个120斤一身黑的小伙子走了进来,看到他微微发福的面容,看来是最近疫情伙食好运动少的结果,他...转载 2020-04-23 20:25:18 · 176 阅读 · 0 评论 -
【Java】单例模式中懒汉式和饿汉式对比总结
单例模式懒汉式和饿汉式区别单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及...原创 2020-03-02 17:24:04 · 568 阅读 · 0 评论 -
【Java】子类能获取父类中private权限的属性和方法
首先我们明确一下“继承”一词的概念,在 Java 中,继承一词的意义是有限制的。一个子类只能继承其父类的可访问的成员,并且该子类没有覆盖或者说隐藏父类中的那些可访问成员。所以,一个类的成员就是指在这个类中所声明的属性和方法,再加上从其父类继承而来的属性和方法。也就是说,*子类是不能继承父类的私有成员的。虽然子类不继承父类中的私有成员,但是在父类中生命的这些私有成员仍然是子类类型对象的一部分。因为...原创 2020-02-28 20:46:35 · 13350 阅读 · 2 评论 -
【Java】类、变量、方法的权限修饰符
静态(static)和非静态在类中使用static修饰的变量称为类变量,不使用static修饰的变量称为实例变量。使用static修饰的方法称为类方法,不使用static修饰的方法称为实例方法。静态的是属于类的,非静态的是属于对象的。一般来说静态的只能访问静态的,非静态的访问非静态的,虽然非静态的可以访问静态的,但是不推荐实例变量、局部变量、类变量的区别:实例方法用于操作实例变量,类...原创 2020-02-27 08:28:25 · 799 阅读 · 0 评论 -
【Java】深入了解this关键字
this关键字this调用属性、方法一、背景: * 当属性和局部变量名字相同时,如何在方法内或构造器内区分属性和局部变量呢? * * 二、this:理解为当前对象或当前正在创建的对象 * * 三、使用this可以在方法内、构造器内修饰、调用:属性、方法: * * 1. 在方法内部,为了区分属性和局部变量,我们使用this来修饰此同名的变量,表示此变量是属性,而非局部变量。...原创 2020-04-16 13:58:52 · 173 阅读 · 0 评论 -
【Java】关于Java属性赋值顺序
属性赋值 * 1. 在类的属性中,可以有哪些位置给属性赋值? * * ① 默认初始化 * ② 显式初始化 * ③ 构造器中初始化 * ④ 通过"对象.属性"或"对象.方法"的方式,给属性赋值 * * 2.这些位置执行的先后顺序是怎样? * ① - ② - ③ - ④ * * 3.说明:上述中的①、②、③在对象创建过程中,只执行一次。 * ④ 是在对象创建后执行...原创 2020-04-16 13:59:29 · 358 阅读 · 0 评论 -
【Java】深入Java构造器
类的成员三:构造器类的成员之三:构造器的使用 * * 1. 构造器,或构造方法、constructor * * construct:v建设、建造 * construction:n. CCB ABC ICBC * constructor:n. 建设者、建造者 * * 2. 构造器的作用:① 用来创建对象 ② 初始化对象的属性信息 * * 3...原创 2020-04-16 14:01:01 · 123 阅读 · 0 评论 -
【Java】深入理解参数的值传递机制
如果赋值操作针对的是基本数据类型的变量,则将基本数据类型变量传递的是:保存的数据值如果赋值操作针对的是引用数据类型的变量,则将引用数据类型变量传递的是:保存的地址值调用方法时,方法的形参会在栈中新建一个变量。如果要换引用类型里面的元素值,需要传引用类型的地址参数(引用类型变量里放的就是引用类型的地址值)给形参才能使形参新建的变量值指向同一个堆地址,进去同一个堆里面换。不能只传引用类...原创 2020-02-25 19:08:22 · 259 阅读 · 0 评论 -
【Java】可变形参的方法 总结
* 测试jdk新特性:可变个数形参的方法 * * 1. jdk5.0新增的特性 * 2. 可变形参的格式:数据类型 ... 形参名。比如:String ... str * 3. 可变形参的方法,在调用时,可以接收的参数的个数为:0个,1个,2个,。。。 * 4. 可变形参的方法,与同名不同参数的方法(除第5点除外)之间,也构成方法的重载。 * 5. 可变形参的方法,与同名方法且参数...原创 2020-04-16 14:04:06 · 317 阅读 · 0 评论 -
【算法】算法常用工具类总结:ArrayUtil
1.说明: ① 定义在java.util包下。 ② Arrays:提供了很多操作数组的方法。2.使用: //1.boolean equals(int[] a,int[] b):判断两个数组是否相等。 int[] arr1 = new int[]{1,2,3,4}; int[] arr2 = new int[]{1,3,2,4}; boolean i...原创 2020-04-16 14:04:37 · 426 阅读 · 0 评论 -
【算法】二分法查找原理:思维图+代码解析
原理实现代码://二分法查找:查询效率高于线性查找 //使用前提:数组是有序的 int[] arr1 = new int[]{1,2,4,6,7,12,32,44,67,88,109,213,556}; int target1 = 109;// target1 = 1009; int head = 0;//默认的首索引 int end = arr1.lengt...原创 2020-02-22 21:02:41 · 582 阅读 · 0 评论 -
【Java】内存角度分析数组的赋值与复制的区别
array2 = array1;如何理解:只是将array1保存的数组的地址值赋给了array2,使得array1和array2共同指向堆空间中的同一个数组实体。3.2 复制:array2 = new int[array1.length];for(int i = 0;i < array2.length;i++){array2[i] = array1[i];}如何理解:我们通...原创 2020-02-22 20:48:47 · 819 阅读 · 2 评论 -
【算法】输出一个回形数(二维数组)
公司就出了这一个笔试题题目描述:从键盘输入一个整数(1~20)则以该数字为矩阵的大小,把1,2,3…n*n 的数字按照顺时针螺旋的形式填入其中。例如: 输入数字2,则程序输出:1 24 3输入数字3,则程序输出:1 2 38 9 47 6 5输入数字4, 则程序输出:1 2 3 412 13 14 511 16 15 610 9 8 ...原创 2020-02-22 20:42:16 · 936 阅读 · 0 评论 -
【算法】使用二维数组打印一个 10 行杨辉三角。
效果图:思路:第一行有 1 个元素, 第 n 行有 n 个元素每一行的第一个元素和最后一个元素都是 1从第三行开始, 对于非第一个元素和最后一个元素的元素。即:yanghui[i][j] = yanghui[i-1][j-1] + yanghui[i-1][j];代码实现:public class YangHuiTest { public static void ma...原创 2020-02-22 20:30:37 · 632 阅读 · 0 评论 -
【算法】冒泡排序算法实现原理《动画版》
动画实现代码public class BubbleSort { public static void main(String[] args) { int[] arr = ne`在这里插入代码片`w int[] { 34, 4, 4, 66, 23, 65, 34, 65, 465 }; System.out.println("排序前\n"+Arrays.toString(arr))...原创 2020-02-22 16:02:15 · 516 阅读 · 0 评论 -
【Java】逐句解析数组元素的反转代码
public class ArrayTest1 { public static void main(String[] args) { int[] arr = new int[] {1,9,36,84,126}; int[] arr2= new int[arr.length]; arr2 = new int[] {126,84,36,9,1};// 方法一:在这里插入代码片 /...原创 2020-02-22 14:04:32 · 243 阅读 · 0 评论 -
【Java】一维数组元素的默认初始化值及内存解析
数组元素的默认初始化值(在数组动态初始化之后,没有显式给数组元素赋值情况下的默认值)整型的数组:byte\short\int\long 型数组的元素的默认值为: 0浮点型的数组:float\double 型数组的元素的默认值为:0.0布尔型的数组:boolean 型数组的元素的默认值为:false字符型的数组:char 型数组的元素的默认值为:0或\u0000引用数据类型的数组:数组的...原创 2020-02-21 18:56:51 · 706 阅读 · 0 评论 -
【Java】二维数组的内存结构
一个一维数组A的元素如果还是一个一维数组类型的,则,此数组A称为二维数组。其实本没有二维数组只不过是以为数组的元素是一维数组而已原创 2020-02-21 16:58:15 · 431 阅读 · 0 评论 -
【Java】键盘输入数组长度且给每个元素赋值,并求出数组的最大值、最小值
键盘输入数组长度且给每个元素赋值,并求出数组的最大值 //1.实例化Scanner Scanner scan = new Scanner(System.in); // 2.根据提示,从键盘输入学生人数 System.out.println("请输入学生人数"); int num = scan.nextInt(); // 3.根据学生人数,创建相应的数组。使用动态初始化 floa...原创 2020-02-21 16:31:27 · 3367 阅读 · 0 评论 -
【Java】深入了解switch、case、break
很多的资料上写着,default 这个语句的后面是不用加break语句的,但其实实在switch中不管哪一个分支,后面都要加上break语句结束循环的的,但是default 后面一般就是switch的“}”括号,所以,在default 后面加一个break意义不太大而已switch语句几乎和break分不开,尽管从语法上没有硬性的规定要有break,但任何一个用到switch语句的实用程序,都...原创 2020-02-19 09:10:41 · 1503 阅读 · 0 评论 -
【Java】浮点型运算结果不精确的原因
解析:单精度有7~8位小数,双精度有15位小数二进制存储,单精度只有16个二进制位,双精度有64个二进制位,二进制位里面包含正负号,整数部分,小数点,小数部分 正 负号和小数点占用二进制位数是定值。将十进制浮点数转换为二进制浮点数时,小数的二制有时也是不可能精确的,就如同十进制不能准确表示1/3,二进制也无法准确表示1/10,而double类型存储尾数部分最多只能存储52位,于是,计算机在...原创 2020-02-17 20:07:05 · 669 阅读 · 0 评论 -
【Java】编程中涉及的进制及表示方式(图解)
➢二进制(binary): 0,1 ,满2进1.以0b或0B开头。➢十进制(decimal): 0-9 ,满10进1。➢八进制(octal): 0-7,满8进1. 以数字0开头表示。➢十六进制(hex): 0-9及A-F, 满16进1.以0x或0X开头表示。此处的A-F不区分大小写。如: 0x21AF +1= 0X21B0...原创 2020-04-16 11:05:33 · 587 阅读 · 0 评论 -
【Java】虚拟机为什么要用int来代替boolean?
虚拟机为什么不用byte或short,这样不是更节省内存空间吗?使用int的原因是,对于当下32位的处理器(CPU)来说,一次处理数据是32位(这里不是指的是32/64位系统,而是指CPU硬件层面),32 位 CPU 使用 4 个字节是最为节省的,哪怕你是 1 个 bit 他也是占用 4 个字节。因为 CPU 寻址系统只能 32 位 32 位地寻址,具有高效存取的特点。...原创 2020-02-17 09:21:20 · 329 阅读 · 0 评论 -
【Java】从JVM与硬件层面解释Java中 boolean数据类型到底占几个字节的问题?
布尔类型定义:布尔数据类型只有两个可能的值:真和假。使用此数据类型为跟踪真/假条件的简单标记。这种数据类型就表示这一点信息,但是它的“大小”并不是精确定义的。也就是说,java规范中,没有明确指出boolean的大小。存在3种说法:1、1个bit(1/8个字节)理由:boolean类型的值只有true和false两种逻辑值,在编译后会使用1和0来表示,这两个数在内存中按位算,仅需1位(b...原创 2020-02-17 09:17:54 · 416 阅读 · 0 评论 -
【Scala】Scala核心知识点总结之函数式编程
文章目录⌘ 基础函数编程-- 基本语法-- 函数&方法-- 函数定义-- 函数参数--- 函数参数的个数--- 可变参数--- 参数默认值,--- 带名参数-- 函数至简原则--- 省略return关键字--- 省略花括号--- 省略返回值类型--- 省略参数列表--- 省略等号--- 省略名称和关键字⌘ 高阶函数编程-- 函数作为值-- 函数作为参数-- 函数作为返回值-- 匿名函数-- 闭包-- 函数柯里化-- 控制抽象-- 递归函数-- 惰性函数在之前Java课程的学习中,我们一直学习的就原创 2020-06-01 01:02:34 · 489 阅读 · 0 评论 -
【Scala】Scala知识点总结之流程控制
文章目录⌘ 分支控制-- 单分支-- 双分支-- 多分支⌘ 循环控制-- for循环--- 基本语法--- 循环守卫--- 循环步长--- 循环嵌套--- 引入变量--- 循环返回值-- while循环--- 基本语法--- while循环--- do...while循环-- 循环中断Scala程序代码和所有编程语言代码一样,都会有特定的执行流程顺序,默认情况下是顺序执行,上一条逻辑执行完成后才会执行下一条逻辑,执行期间也可以根据某些条件执行不同的分支逻辑代码。⌘ 分支控制让程序有选择的的执行,原创 2020-11-03 23:48:23 · 278 阅读 · 0 评论 -
【Scala】反编译轻松看懂Scala中==、equals、eq的区别
eq其实就是Java中的==,比较对象的内存地址==,比较地址中的内容,类似于equals方法,并进行了非空判断,防止空指针异常。a.equals(b),相比==,少了非空判断,很少使用通过反编译后清晰明了:// 用eq其实才是Java中的==,比较对象的内存地址public void main(final String[] args) { String a = new String("abc"); String b = new String("abc"); .M..原创 2020-05-24 20:01:19 · 578 阅读 · 0 评论