- 博客(40)
- 收藏
- 关注
原创 final关键字
我们通过 javap -v xxx.class ,可看到对应class文件的字节码文件信息。当一个元素被 final 修饰时,实际被 ACC_FINAL 标识。下面查看hotspot源码看下底层实现:http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/file/91b61f678a19/src/share/vm/utilities/accessFlags.hpp字段被final修饰的,设置不可重写http://hg.openjdk.java.net/jd
2021-04-20 13:57:11
176
原创 .class文件 ClassFile解析记录
ClassFileClassFile {u4 magic;u2 minor_version;u2 major_version;u2 constant_pool_count;cp_info constant_pool[constant_pool_count-1];u2 access_flags;u2 this_class;u2
2021-03-30 23:58:44
368
原创 mvn: command not found
Mac配置使用 IDEA默认的maven步骤配置环境变量MAVEN_HOME=/Applications/IntelliJ\ IDEA.app/Contents/plugins/maven/lib/maven3export MAVEN_HOMEPATH=PATH:PATH:PATH:MAVEN_HOME/binexport PATH对 mvn 添加执行权限chmod a+x /Applications/IntelliJ\ IDEA.app/Contents/plugins/mav
2021-03-30 15:18:22
3174
原创 easyexcel Create workbook failure 问题解决
问题上节 阿里巴巴-easyexcel 下载案例 我们成功实现了 excel 的下载问题,并且在本地测试通过。但我们将项目部署到服务器上报 Create workbook failure。产生原因服务器不支持excel的字体格式解决方案安装 ttf-dejavu具体执行命令:apk --update add curl bash ttf-dejavu && \ rm -rf /var/cache/apk/*也可以打包到镜像文件中参考:https://www.jian
2021-03-22 16:50:13
8583
1
原创 平衡二叉搜索树 - 左旋|右旋
上一节 红黑树前奏 - 对树的基本理解 我们讲到 二叉搜索树 单向链表的问题,为了解决这个问题,我们引入了平衡二叉搜索树。所谓平衡二叉搜索树,必须满足 BST 的特性。何为平衡,每个节点的平衡因子的绝对值 <= 1.那么平衡因子如何计算呢?大体思路:计算每个节点的高度 高度 = MAX(左子树高度, 右子树高度) + 1每个节点的左子树和右子树的差就是 平衡因子案例:上图因为插入 2 元素,导致了整棵树不平衡。此时,为了达到平衡状态,我们需要进行左旋和右旋的操作。为了方便理解,下
2021-03-21 18:18:26
678
原创 红黑树前奏 - 对树的基本理解
背景我们在看JDK1.8 HashMap源码时,可发现当同一个桶的链表长度>8,并且table.length >= 64,链表就会转为红黑树(提升查询效率)。但对于红黑树的理解大多数只在于一个名词,或者一个印象。本节内容主要分享一些本人对树的基础知识及左旋和右旋的理解,感谢大家的阅读。概念树一种数据结构,由多个节点组成的一个有层级的集合。具体概念:参见百度 树常见树的结构1. 二叉树每个节点最多含有两个子树的树称为二叉树2. 满二叉树叶节点除外的所有节点均含有两个子树的树
2021-03-21 17:54:51
127
原创 阿里巴巴-easyexcel 下载案例
1. pom.xml 配置<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/x
2021-03-12 19:18:08
665
原创 mongo日期处理工具类 - ISODate类型
package com.fresher.migration.util;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.GregorianCalendar;import java.util.SimpleTimeZone;public class ISODateUtil { public static Date dateToI
2020-12-23 22:59:25
2279
原创 Mac 升级Big Sur IDEA - xcrun: error: invalid active developer path
背景Mac 升级Big Sur IDEA GIT异常。内容如下:Сannot Run Gitxcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun解决方案(亲测有效)进入终端输入命令:xcode-select --install等待安装完成,重
2020-12-21 23:39:25
187
原创 Java 单例模式的8种实现方式
单例模式是设计模式最为常见的一种,也是面试中常常考到的。下面作为记录,希望对你也有所帮助。推荐 枚举方式 静态内部类方式 Double-Check方式 /*** 单例模式:整个系统软件中,只有一个实例对象* 枚举* 优点:* 达到了 lazy loading 的效果;线程安全;效率高 - 生产环境推荐使用* 缺点:* ...
2020-02-05 16:54:43
380
原创 源码解析 - HashMap 浅析
本文是源码入门浅析,突破我们对源码的恐惧。希望大家不要看到源码就畏惧,一点点来,我们一样可以一步步成为大神。前面赠送一个简单的面试题给大家HashMap和Hashtable的区别:HashMap 是从1.2开始的;Hashtable是从1.0开始的HashMap 是线程不安全的;Hashtable 是线程安全的HashMap 可以存 null 值 null 键;hashtable ...
2019-12-15 11:05:56
240
原创 源码解析 - LinkedList浅析
本文是源码入门浅析,突破我们对源码的恐惧。希望大家不要看到源码就畏惧,一点点来,我们一样可以一步步成为大神。结论:LinkedList 底层是由双向链表实现的。链表不具有索引的概念,所以,遍历效率很低。同时双向链表的查询效率可能高于单向链表。单向链表只能从头查到尾(一个方向);而双向链表可先判断查询元素离头近还是离尾近,从而选择近的一方开始查询,从而提升了查询效率。之所以说可能,因为如果...
2019-12-15 10:04:41
228
原创 Spring AOP 错误 之 ClassCastException
今天在spring配置文件中配置切面时,出现了以下错误:java.lang.ClassCastException: com.sun.proxy.$Proxy11 cannot be cast to com.fresher.service.impl.AccountServiceImpl at com.fresher.test.TestAOP.testAop(TestAOP.java:18)...
2019-09-19 20:15:50
831
原创 Linux 网络问题 cable unplugged
在VMware虚拟机上刚安装CentOS时能够上网,一段时间后发现上不了网,提示cable unplugged,就是网线被拔出。打开Edit->Virtual NetWork editor, 选中VMnet8,然后点击NAT Setting按钮,再点击DNS Setting,勾掉自动选择,然后将自己的DNS服务器IP输入。...
2019-06-26 16:36:55
11184
原创 执行 ipvsadm 命令时,报错
执行 ipvsadm 命令时,报错:Can't initialize ipvs: No space left on deviceAre you sure that IP Virtual Server is built in the kernel or as module?产生原因:咋一看,很容易被错误信息带偏。其实是没有权限的问题。解决方案:在命令前,添加 sudo...
2019-04-18 13:34:27
2125
6
原创 Cannot lock storage /home/centos/hadoop/dfs/name. The directory is already locked
Hadoop在全分布模式转为 HA 模式时,执行:hdfs namenode -initializeSharedEdits抛出如下错误:Cannot lock storage /home/centos/hadoop/dfs/name. The directory is already locked产生原因:Hadoop服务还在运行状态,出现了类似于占有的情况。同理,如果是格式化 名...
2019-02-25 13:55:46
1226
原创 Hadoop 机架感知理解 和 配置实现
什么是机架感知?机架感知简单的讲 就是告诉集群各个从节点所在的机架。方便集群更有效率的存储数据、利用资源。默认的副本存储策略:首选在本地机架的一个node存放副本,另一个副本在本地机架的另一个不同节点。最后一个副本在不同机架的不同节点上。 怎么告诉集群?Hadoop 并没有那么智能,知道各个从节点所在的机架。主要管理员手动的去配置。如果不配置,它会生成一个 defa...
2019-02-23 11:08:22
599
原创 SQLException: null, message from server: "Host 'xxx' is not allowed to connect to this MySQL serve
根据提示测错误得知,我们的权限不足。所以,导致我们无妨访问 MySQL.知道了原因,那么我们就要修改权限就可以了。步骤如下:1、登录 mysql mysql -uroot -p2、use mysql;3、show tables;4、select host,user from user; 可以看到 host 为 localhost,表示mysql只允许本机访问。将...
2019-02-22 14:58:20
2788
原创 Hadoop 集群批处理脚本
xcall.sh功能:在多台节点上执行相同的命令使用方法:xcall.sh 命令代码:#!/bin/bash#各节点执行命令 s101 - s104params=$@ #需要执行的命令host=101for (( host=101 ; host <= 104 ; host=$host+1 )) ;do echo ======== s$host ======...
2019-02-22 14:07:30
485
原创 Hadoop与MySQL进行交互实现
准备工作:1、安装和配置好 MySQL2、创建数据表,并写入测试数据;以及创建结果表,以便MR写入数据注意: 1、与 mysql 交互时,Mapper的输出类型 (LongWritable,DBWritable);Reducer的输出类型 (DBWritable,NullWritable) 2、如果提交到集群上运行,需要注意 2 点: a>...
2019-02-22 13:53:30
2852
原创 Hadoop 作业链条化实现
作业链条化编程[MAP+ / REDUCE MAP*]实现功能: 单词统计 需求: 1、过滤敏感词汇 2、过滤单词出现小于5的词汇 链条结构: MapMapper1(映射) + MapMapper2(过滤敏感词汇) + Reducer(聚合) + ReduceMapper1(过滤小于5的词汇) WCApp.classimport org...
2019-02-21 12:06:09
227
原创 Error: JAVA_HOME is incorrectly set. Please update xxx hadoop-env.cmd
在Windows上对产生的seqFile文件进行查看时,出现如下错误:产生原因:如图可知,是hadoop-env.cmd目录下的 JAVA_HOME 配置不正确。 修改如下:set JAVA_HOME=C:\PROGRA~1\Java\jdk1.8.0_73注意:因为我的Java安装在默认的目录下,C:\Program Files\Java\jdk1.8.0_73但...
2019-02-17 17:36:58
837
原创 java -jar,报错 no main manifest attribute in xxx.jar
在 cmd 下执行 java -jar xxx.jar 包名.类名 报错:no main manifest attribute, in xxx.jar产生原因:一般情况下,java 打包成 jar 包需要在 MANIFEST.MF 中指定 Main-Class 项,以便运行 java -jar xxx.jar 时找到对应的主类。因为-jar的含义就是后面跟的jar包是有main ...
2019-02-16 12:37:08
25311
原创 Intellij IDEA MAVEN 工程 打jar包并复制到指定目录
1、在pom.xml文件中,添加 <packaging>jar</packaging> 2、在右侧maven工具中,跳过test选项 3、右键package,选择带有 ...[package]的选项,即可在输出目录下得到jar包 注意:如果要将打好的包直...
2019-02-14 10:21:38
2250
原创 Hadoop本地测试错误:(null) entry in command string: null chmod 0700 H:\h\home\centos\hadoop\mapred\staging\
在 Windows 上对 MR 做本地测试时,出现了如下错误:java.io.IOException: (null) entry in command string: null chmod 0700 H:\home\centos\hadoop\mapred\staging\xxx1514221591\.staging解决方案:将 Hadoop 安装目录下bin/hadoop.dll ...
2019-02-02 20:53:32
3088
转载 Intellij IDEA 快捷键整理
【常规】Ctrl+Shift + Enter,语句完成 “!”,否定完成,输入表达式时按 “!”键 Ctrl+E,最近的文件 Ctrl+Shift+E,最近更改的文件 Shift+Click,可以关闭文件 Ctrl+[ OR ],可以跑到大括号的开头与结尾 Ctrl+F12,可以显示当前文件的结构 Ctrl+F7,可以查询当前元素在当前文件中的引用,然后按 F3 可以选择 Ct...
2019-01-22 13:45:05
134
原创 CentOS 共享文件夹hgfs下没有共享文件
如果在 /mnt 下没有 hgfs 文件夹,得先安装 VMware-Tools。安装重启后,/mnt/hgfs 目录下没有我们之前设置的共享文件夹!试了很多方法,还是无法解决。最后通过尝试,得到如下解决方案:1、挂载(本地测试环境只共享了一个文件夹,多个未测试)如果没有权限则需要切换到root用户mount -t vmhgfs .host:/ /mnt/hgfs如果报错E...
2019-01-13 21:17:28
403
原创 CentOS IP能ping通,但是域名无法ping通. 域名服务问题
之前讲网络模式由 仅主机模式改为NAT模式后,为了测试是否能上网。ping www.baidu.com,结果却抛出:ping: www.baidu.com: Name or service not known一看就是域名解析的问题。 解决方案:1、打开 /etc/resolv.conf 文件2、添加 nameserver ,如下:> nameserver 192...
2019-01-12 15:22:04
2878
原创 CentOS7 Failed to start LSB: Bring up/down解决方法
想看解决方案,请拉到最下面!原起:之前安装的 CentOS 是仅主机模式,这种模式不能通过虚拟机直接访问网络。为了实现需求,我将网络连接模式改成了 NAT 模式。这时,之前连接的Putty断开了。我查看了ip没有问题,考虑到一些不确定因素,我直接重启了虚拟机。但问题依旧存在。我通过宿主机(windows)ping 虚拟机也无法ping通,说明宿主机和虚拟机无法通信。对了,...
2019-01-12 15:07:41
690
原创 byte[] 和 int 之间的转换
废话不多说,直接上代码。注释很详细/** * 将int类型的值转为byte[] * @param i 传入的int类型的值 * @return 返回转换后的byte[]的值 * 因为int类型由 4 个字节组成 */ public byte[] int2Bytes(int i) { byte[] b = new byte[4]; b[0] = (byte) i; /...
2018-11-13 23:57:15
727
原创 Linux MySQL登录异常 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
在安装完 MySQL 后,用默认的密码登录时,抛出如下异常:ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)产生原因,之前卸载重新安装一次,安装后使用命令:cat /var/log/mysqld.log | grep password查看了临时的密码,但是登录始终不行。...
2018-09-27 21:25:33
2197
1
原创 DOS 操作 MySQL数据库乱码问题
虽然在开发中我们经常使用图像化工具管理数据库,但有时我们也会用到 DOS 去操作。由于 windows 采用的编码集市 GBK,当我们数据库使用的是 其他编码(如:UTF-8),就会出现乱码的情况。甚至,我们在插入中文数据的时会报错。insert into user(username,password) values(‘张三’,’123’); ERROR 1366 (HY000): In...
2018-09-21 17:57:41
236
原创 MySQL 的基本使用
一、登录MySQL是一个需要账户名和密码登录的数据库,而登录的方式也多种多样。1、命令行格式1:cmd> mysql –u用户名 –p密码例如:mysql -uroot –proot格式2:cmd> mysql --host=ip地址 --user=用户名 --password=密码例如:mysql --host=127.0.0.1 --user=root --p...
2018-09-21 17:51:45
183
原创 MySQL的安装和配置
一、MYSQL的安装1、打开下载的mysql安装文件mysql-5.5.27-win32.zip,双击解压缩,运行“setup.exe”。2、选择安装类型,有“Typical(默认)”、“Complete(完全)”、“Custom(用户自定义)”三个选项,选择“Custom”,按“next”键继续。3、点选“Browse”,手动指定安装目录。4、填上安装目录,我的是“E:\Server\M...
2018-09-18 14:48:43
1387
原创 数据库的相关概念
何为数据库? 数据库就是存储数据的仓库,本质是一个文件系统,数据被按照特定的格式存储起来。用户也可以通过 SQL 对数据进行 增删改查 等操作.什么是数据库管理系统? 数据库管理系统(DataBase Management System, DBMS):指的是操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一的管理控制,以保证数据库的安全性和完整性。用户通...
2018-09-17 17:51:32
286
原创 Java 多线程死锁之谜以及等待唤醒机制(生产消费案例)
为了解决多线程的安全问题,我们用到了同步锁机制。但是当存在多个同步代码块嵌套时,可能出现死锁的现象。何为死锁? 如图:线程1拿着 A 锁,线程2拿着 B 锁。这个时候,线程1拿不到B锁,线程2拿不到A锁。就出现了僵持的情况,这就是死锁。...
2018-09-14 22:20:55
244
原创 Java 多线程安全问题浅析
我们都知道,当多线程访问共享的资源时,可能会出现线程安全问题。比如:卖电影票、火车票等问题产生了,那么我们如何解决呢?解决问题最根本的方法:当一个线程进入数据操作时,无论是否休眠或阻塞,其他的线程只能等待。举个栗子:比如排队上厕所Java为了解决这个线程安全问题,提供了 同步 的技术 - 同步代码块 和 同步方法。虽然这样程序执行效率降低了,但是为了安全性必须得牺牲效率。语法如下/...
2018-09-13 20:58:12
239
原创 Java - 多线程的使用
在学习多线程之前,我们先来明白几个概念。进程:广义上讲,进程指的是正在运行的程序。比如:QQ、迅雷等。确切的说,进程是一个程序进入了内存,并且处于运行的状态的程序,是一个进行时。线程:线程是进程中的执行单元,负责当前进程中程序的执行。一个进程至少有一个线程。当一个进程有多个线程的时候,就是我们所说的多线程程序。简单的说:一个程序至少有一个进程,一个进程可以包含多个线程。程序运行的机制:...
2018-09-13 16:39:11
150
1
原创 Java 知识点备忘(必看)
过往的经历告诉我们,好记性不如烂笔头,永远都不要觉得很简单就放松警惕。以下是自己对 Java 的一些易忘点的记录,如果对你有帮助,请别忘了点赞哦!1B(字节) = 8bit(比特位)byte(1) - short(2) - int(4) - long(8) - float(4) - double(8) - char(2) - boolean(1)关键字及标识符的概念 关键字是 ...
2018-09-11 20:02:36
832
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人