- 博客(59)
- 资源 (9)
- 问答 (3)
- 收藏
- 关注
原创 go随笔-高效的语言
如果变量已经完成了它的使命,那么尽快的结束其生命周期即干掉其在内存中的存在,无疑会让代码变得高效一点。尽管go里面垃圾回收机制,但是这并不意味着我们什么也不用管。比如将短生命周期的对象的指针保存到长生命周期的对象中,尤其是全局变量中,会阻止垃圾回收对短生命周期变量的回收,从而影响效率。var global *intfunc f(){ var x int global = &x}x 虽然是局部变量,但是由于全局变量global引用了它,所有f函数结束之后,我们依然可以通过global
2022-05-31 16:59:43
219
原创 【擦,终于搞明白了utf8和unicode】
背景今天周六,在家无聊。准备研究一个以前自己半懂不懂的问题,这个utf8和unicode究竟是啥?查了一下午的网上资料,给我脑袋看炸了。什么乱七八糟的,有的说的很有道理,有的越说越糊涂,好像多么高深似的,非要把人弄的兴趣全无。为了解释一个东西,就新造一个新的术语。简直是xxx。好了,吐槽完毕,言归正传,为了帮助大家简单且深刻的理解一下utf8和unicode,我下面将争取用最朴实的语言来描述,有不到位的地方,希望大家多多评论,一起学习,多谢各位。示例语言:go版本:1.18哎,怎么不一样?咱
2022-04-23 22:27:16
1791
原创 logback 中SizeAndTimeBasedRollingPolicy 的maxFileSize不生效的问题
当我将其设置成<maxFileSize>1KB</maxFileSize>的时候死活不生效。就是不给我按照大小分割。将logback的日志信息打印如下:Archive files will be limited to [1 KB] each.明明是生效了啊,怎么回事呢?原来,是这个1KB设置的太小了,logback"来不及切割",因为我其实就想测一下这个按照大小分割的功能,所有设置了1KB。按照前人经验,得设置成10MB,才能看出来。因此我直接写了个循环,把log
2021-01-20 00:24:44
10239
1
原创 01如何离线下载安装python依赖包
背景咱们好多公司的环境因为安全考虑是无法连接互联网的,但是有一些python用到的第三方包就得从互联网环境下载。这就比较麻烦了。下面给出一种解决思路。第一步准备一台可以连上互联网得电脑,装上与生产环境同样的python版本例如,我这里是python3.7.4第二步查看一下当前咱们的python已经装了哪些依赖包执行pip3 freeze > /home/xiaoming/old_requirements.txt第三步安装一下咱们需要的依赖包,我这里以hive的依赖包PyHi
2020-09-14 18:45:34
714
原创 28 关于JAVA多态中认识的一个误区
问题再现有下面三个JAVA代码,其中内容如下问:输出的结果是0还是1?// Father.javapackage demo01;public class Father { public int num=0; public void method(){ System.out.println("我是父类中的方法"); }}// Son.javapackage demo01;public class Son extends Father{ pu
2020-09-12 22:55:55
97
原创 27 log4j2发送Syslog日志出现乱码错误
乱码是个啥我们说的乱码,大部分其实都是中文乱码。例如这次我遇到的,“北京” 两个汉字变成了 “鍖椾含”出现乱码的原因我们知道,电脑屏幕显示的汉字其实是由一个个像素点构成的。而一个汉字其实对应一个字符码。推导一下,每一个字符码对应一种像素点的组合方式。如下图:解码与编码我们可以这样理解,把字符码变成像素点的过程就叫做"解码"那么反之,像素点变成字符码的过程叫做"编码"字符集那么,咱们解码和编码不能瞎搞吧,0x666我解码成"好",过几天我又解码成"你",这样肯定是不行的。我们需要一
2020-09-10 22:28:40
3667
原创 01 如何设置远程机器的转发
背景:我需要访问到某台远程机器上的8088端口的界面。但是,这台机器不能从本机直接访问,需要跳几次。详细步骤如下:可以使用proxyCap工具,但是那玩意收费。我们可以使用openssh的ProxyCommand命令在 ~/.ssh/config 中配置如下,若没有config文件,新建一个就可以。Host t1 Hostname 1.2.3.4 Port 22(也不一定非是22,开通哪个登陆端口就是哪个) User root(自己登陆的账户,不一定是root)Hos
2020-08-23 18:33:00
253
原创 26 为什么JAVA中的外部类不用private或者protected修饰
1 不用private修饰原因:private修饰的变量或者方法都只能在本类中可见。假设private可以修饰类,也就是说任何类都无法再访问到这个类。不就相当于,在一个包里面,只有一个类,那个类是(default)的。所以,没有必要再去用一个private修饰符。2 不用protected修饰符protected修饰的类或者方法只能在本包或者子类中可以访问。假设有一个不同包的子类要访问父类中的某个protected修饰的变量。第一步是先要把这个类导入进来。假设有一个类是可以用protec
2020-08-15 16:01:45
1205
原创 25 JAVA中的局部变量,只声明不赋值在内存中的样子
上面的一段话,用代码描述如下:public class Demo01 { public static void main(String[] args) { int a; System.out.println(a); }}结果呢?都无法通过编译。。。更不要谈 内存了。有人说,你可以把代码这么改,如下:public class Demo01 { public static void main(String[] args) {
2020-08-09 21:24:04
1035
原创 24 关于自动类型转换以及向上转型的一点思考
自动类型转换: 基本类型向上转型: 多态我学习的时候,对于自动类型转换很容易理解。但是对于向上转型总得思索一番。我看很多视频提供了一个依靠自动类型转换来方便记忆的办法:double a = 30;// a=30.0,自动发生所以:Fu f = new Zi(); // 自动发生。他们将 Fu f 类比于 double a;new Zi() 类比于 int 30。我思索了一下,总觉得有点问题。double a是double 类型,比int 类型范围要大的多。但是父类 f 要比 子.
2020-08-04 23:05:19
200
1
原创 23 Interface类的成员变量
Interface类的成员变量其实也是常量。因为成员变量是由 public static final修饰的。由于final(不可更改)关键字,所以虽然成员变量都有初始值。但是此处必须在声明的时就赋值,否则与final关键字矛盾!因为初始值必然是要被重新赋值的。常量的书写方式,必须都是大写,用下划线分割。public interface MyInterface { public static final String MY_GIRL_FRIEND = "杨幂";}...
2020-07-29 18:57:03
593
原创 22 构造方法这继承中的特点
已知,在创建子类对象的时候,是先创建父类对象,再创建子类对象。由此得出,在子类的构造方法中,必然又一个super.父类构造方法哪怕不写,编译器也会默认加上。验证本帅哥的猜想,Fu.javapublic class Fu { public Fu(){ System.out.println("这是父类构造方法"); }}Zi.javapublic class Zi extends Fu{ public Zi(){ System.out.
2020-07-25 18:27:05
85
原创 21 Override的几个注意点
1 使用注解帮忙检测如果我们不确定自己写的方法是不是正确的覆盖了,可以在方法前面添加Override帮助我们检查。2 返回值的范围要小于等于父类被覆盖的方法举一个形象的例子:王总是个父类,有一个方法earnMoney。返回值是long。小王总,也有个earnMoney的方法,但是小王总之所以会赚钱是因为老王总的投资。所以小王总挣得钱不会比老王总还要高。因此返回值类型要么是long,要么是long之下的,不可能float,double。因为这方法是继承自老王总的,只能传承,不能发扬光大。3 方法
2020-07-25 17:01:45
283
原创 20 重写和重载的区别
Override(覆盖)也叫重写(我认为这样翻译不太好,还是叫覆盖好),发生在继承中,子类的方法名称,参数列表和父类一样。Overload(重载)方法名称一样,参数列表不一样。
2020-07-25 16:32:35
106
原创 19 轻松一点理解静态成员方法不能访问非静态成员变量
书本上上的回答:因为内存中是先有静态内容,再有非静态内容。上面这个解释太抽象了。很难记得住,还是举个例子比较好。新建一个类:Coder类public class Coder { /** * 定义布尔型成员变量 "头秃" * 定义静态成员变量 "职业" */ boolean 头秃; static String 职业 = "写代码";}我们知道,程序员不一定都秃顶,但职业肯定是写代码。所以 【头秃】 是非静态的,由具体对象决定;【职业】是.
2020-07-22 22:34:31
808
1
原创 18 JAVA中的static
简单的理解一下一个类共有的,与对象无关的,就可以用static。图示如上图所示,人类这个类。每个人都是这个类的对象。每个人都是独一无二的。但是作为同属 人 “类” 不管哪一个独立的对象,我们都是直立行走的。从节省内存考虑,完全没有在new 一个新的人类对象的时候,都要新增一个直立行走这个属性。所以此时,这里的“直立行走”就可以使用static来修饰。...
2020-07-22 18:34:29
89
原创 17 JAVA中的字符
需求:键盘输入一个字符串,统计其中大写字母,小写字母,数字和其他字符出现的次数大体思路代码参考import java.util.Scanner;/** * 键盘输入一个字符串 * 统计字符串中的大写字母,小写字母,数字,其他 * <p> * 分析: * 1. 用到scanner类 * 2. 获取输入的字符串 * 3. 对字符串中对每一个字符进行分析 * 4. 四个变量作为结果返回 */public class Demo01 { public stat.
2020-07-21 23:24:06
146
原创 16 Java中的分割
/** * 字符串切割 * public String[] split(String regex) * <p> * 注意,参数是一个正则表达式,需要加两个 \\ */public class Demo05 { public static void main(String[] args) { String str1 = "aaa,bbb,ccc"; String[] array1 = str1.split(","); for (i
2020-07-16 21:33:34
154
1
原创 15 字符串格式的小数转换成int类型
“100.0” --> 100大家觉得没问题。但是“100.6” --> 100 还是 101呢?电脑并不知道,因此下面代码会报错/** * String 类型的 100.0 不能直接被转换成python */public class Demo01 { public static void main(String[] args) { String str1 = "100.3"; // 自动拆箱 int a = Integer
2020-07-16 15:10:35
2544
2
原创 14 Java中equals使用的小技巧
/** * public boolean equals(Object obj) * Object类型可以接收任何对象 * 推荐写法 * 常量.equals(变量) * public boolean equalsIgnoreCase(String str) */public class Demo03 { public static void main(String[] args) { String str1 = "abc"; System.out.prin
2020-07-14 23:27:58
176
原创 13 JAVA中的String(1)
/** * 3+1 String的构造方法 * 1. 空 * 2. char[] * 3. byte[] byte是数字 * 4. 字面值 * <p> * 注意: * String不能更改,但是可以共享 */public class Demo01 { public static void main(String[] args) { String str1 = new String(); System.out.println("第一种字符
2020-07-14 22:01:34
152
原创 12 Java中的ArrayList
import java.util.ArrayList;/** * 1. size() 获取ArrayList里面的元素个数 * 2. add() 有返回值,对于ArrayList来说,这个方法一定会执行成功 * 因此返回值是true * 3. get(int index) index是从0开始的 * 4. remove(int index) 会返回被remove的元素 */public class LearnArrayList { public static void main(S
2020-07-08 22:51:24
126
原创 11 JAVA的匿名对像
Personpublic class Person { String name; // 成员变量默认的修饰符是default,只能在当前类或者同一个包中访问 public void showName() { System.out.println("我是" + this.name); }}Demo01Anonymous/** * 匿名对象 * 普通标准格式 * 类名称 变量 = new 类(); * * 匿名:new 类() * 注意事项,每一次
2020-07-06 22:34:11
159
原创 10 JAVA中的局部变量和成员变量
/** * 局部变量和成员变量 * * 1. 定义的位置不一样 * 局部变量定义在方法之中 * 成员变量定义在类中 * * 2. 作用范围不一样 * 局部变量只能在方法的内部 * 成员变量作用在整个类 * * 3. 默认值不一样 * 局部变量没有默认值,局部变量要使用,必须先要初始化 * 成员变量有默认值 * * 4. 生命周期不一样 * 一般情况下 * 局部变量,随着方法入栈诞生,方法在栈内存中出栈之后就没了 * 成员变量,随着对象被创建诞生,随着对象被垃圾回收而消失
2020-07-02 23:57:55
97
原创 09 JAVA对内存的划分
栈(Stack)存放的都是方法中定义的局部变量局部变量: 方法的参数,或者是方法体中定义的变量方法都在栈中运行堆(Heap)凡是new出来的东西都在堆中存放堆里面存放的东西都有地址值堆内存的数据都有默认值如果是整数,默认为0 (byte/short/int/long)如果是浮点数,默认为0.0(double/float)如果是字符,默认为 ‘\u0000’如果是布尔,默认为false如果是引用类型,默认为null方法区(Method Area)存储.class
2020-06-30 18:13:16
95
原创 08 JAVA编译器对常量的优化二
/** * 编译器对常量的优化二 * 对于byte/short/char来说,当这三种数据类型进行计算的时候 * 会自动提升成int类型 * 编译器对于常量的计算,是自动完成的,不会放到jvm中去运行 */public class Demo02 { public static void main(String[] args) { byte result = 13; }}...
2020-06-30 08:23:18
146
原创 07 JAVA编译器对常量的优化(一)
/** * 编译器对常量优化一 * 对于byte/short/char来说,如果右边是常量 * 那么编译器会对其进行一个优化,自动强转 * */public class Demo01 { public static void main(String[] args) { byte a = 30; // 实际上编译器会改成 byte a = (byte)30; }}...
2020-06-30 08:03:46
166
原创 06 JAVA三元运算符
/** * 什么是三元运算符 * 一元运算符: 只需要一个数据参与,例如 !、自增、自减 * 二元运算符: +... * 三元运算符: 三个数据参与 * <p> * 数据格式: * 变量类型 变量名称 = 表达式A ? 表达式B : 表达式C * <p> * 注意事项: * 类型要一致 * 一定要用上 */public class Demo10DataType { public static void main(String[] args) {
2020-06-27 19:46:53
119
原创 05 JAVA强制类型转换
简单的就不说了,说一下易错点:也就是下面的第三点/** * 强制类型转换 * 1.特点: 代码需要进行特殊的格式处理,不能自动完成 * 2.特点: 范围小的类型 范围小的变量名 = (范围小的类型) 范围大的数据; * 注意事项: * 1. 强制类型转换一般不推荐使用,会发生精度丢失,数据溢出 * 2. byte/short/char都可以发生数学运算,例如"+" * 3. byte/short/char在进行计算的时候,首先被提升成为int类型,再进行计算 */public
2020-06-23 21:25:04
144
原创 04 JAVA基本数据类型的自动类型转换
自动类型转换注意两点即可:1. 是自动发生的2. 触发条件:由可表示数据范围小的向可表示数据范围大的转换时看代码/** * 数据类型转换 * 自动转换(隐式): * 触发条件: 数据范围由小到大 * 特点: 自动完成 */public class Demo01DataType { public static void main(String[] args) { // 普通的正常写法 long num1 = 100L;
2020-06-22 10:30:21
449
原创 03 JAVA基本数据类型
四大类:整数型 byte、short、int、long浮点型 float、double字符型 char布尔型 boolean八大种数据类型关键字最小单位内存占用可表示数字的范围字节型byte1个字节-128~127短整型short2个字节-32768~32767整型int(默认)4个字节-231 ~ 231-1长整型long8个字节-263 ~ 263-1单精度浮点数float4个字节1.4E-45~3.40282
2020-06-20 00:03:36
112
原创 01 两张图搞定Java语言的跨平台特性
我学java赚了很多钱,要分别去韩国,日本,泰国旅游。但是我不懂这三个国家的语言。所以,我准备请三个翻译。让他们把我的普通话,翻译成当地的语言。我说的普通话,就相当于我编写的java程序。这三个国家的翻译就相当于三种jvm虚拟机。所以说,java跨平台的特性这种说法并不严谨。只能说,java对开发人员来讲是跨平台。因为,甲骨文公司已经把各种平台的jvm给你做好了。我们可以体会一下这种设计思想。...
2020-06-08 00:15:02
346
原创 SpringBoot初体验之idea新建项目
目录新建项目为啥没有官网下载安装重启 idea出现了新建项目点击新建,怎么没有Spring Initializr,那我咋新建?我的图片教程图片为啥没有查了一下资料,原来这玩意得先去下载一个插件。实际上我觉得这种工具类的东西,让人更加方便了,但是也更加愚笨了,按照道理,就算用文本文档也应该可以创建一个springboot项目的。先不管了,我是新手,先去下载插件吧。下载失败了,没办法,这个市场太垃圾。基本上啥都转不出来。如下图。官网下载官网下载现在新版的选择第一个就成安装重启
2020-06-05 15:05:49
179
原创 Maven更新之后,jdk版本变成1.5
目录问题再现原因解决方法解决方法1解决方法2问题再现原因解决方法解决方法1以我这里安装的maven位置为例vim /Users/pythonbug/app/apache-maven-3.6.3/conf/settings.xml在 profiles 标签下面添加<profile> <id>jdk-1.8</id> <activation> <activeByDefault
2020-06-03 14:15:32
679
2
原创 关于java.io.File类中getParent()方法的疑惑
目录疑惑的地方原来是这样疑惑的地方public class TestFile_02 { public static void main(String[] args) { String separator = File.separator; String testDir = separator+"Users"+separator+"pythonbug"+separator+"a.txt"; File f = new File(testDir);
2020-05-27 23:43:42
425
原创 Java的StringBuffer初识
目录可变常用方法apend例子insert例子delete例子可变例子:public class StringBuffer_01 { public static void main(String[] args) { StringBuffer strb = new StringBuffer("123"); strb.append("abc"); System.out.println(strb); }}图解:我们可以看到,这与Str
2020-05-24 16:40:12
146
原创 Java中的String(1)
目录String不可变一个例子字符串常量的优化是对象的情况下常用的方法String不可变摘自JDK1.8 API文档Strings are constant; their values cannot be changed after they are created.这玩意被创造出来之后就是不可变的了。如下代码:public class String_01 { public static void main(String[] args) { // 1 String是不
2020-05-18 00:20:20
509
原创 Producer可以创建topic却无法send消息
1 问题描述创建的Java Producer API发送数据,但是consumer的时候却无法看到发送的数据。不过可以成功创建topic。2 机器简介我有四台linux集群(不是虚拟机,都是单独的物理机,四台树莓派):hostnamebroker-listIP地址power1broker0192.168.31.2slaves1broker1192.168...
2020-02-06 13:16:30
2334
instantclient-basic-macosx-10.1.0.3.zip
2020-04-12
《编译原理》 龙书 英文版
2015-09-25
[Excel.VBA应用高效开发.:案例精华版].伍云辉.part4.rar
2015-09-16
[Excel.VBA应用高效开发.:案例精华版].伍云辉.part3.rar
2015-09-16
[Excel.VBA应用高效开发.:案例精华版].伍云辉.扫描版 .part2.rar
2015-09-16
[Excel.VBA应用高效开发.:案例精华版].伍云辉.part1.rar
2015-09-16
使用Pyinstaller打包含有cx_Oracle模块遇到的问题
2017-08-02
ORACLE的instr函数,想了一下午,求大神解惑,不胜感激!!!
2016-06-04
关于汇编段寄存器问题
2015-05-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人