自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 &lt;= 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&gt...

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文件中,添加 &lt;packaging&gt;jar&lt;/packaging&gt;             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 ,如下:&gt; 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

原创 MySQL之查询语句

在实际项目开发中,SQL 的查询时使用频率最高的,所以,这篇文章讲解 SQL 的查询相关语句。

2018-09-26 17:40:27 268

原创 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&gt; mysql –u用户名 –p密码例如:mysql -uroot –proot格式2:cmd&gt; 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关注的人

提示
确定要删除当前文章?
取消 删除