随笔分类 - JAVA
摘要:今天使用lambda表达式处理集合时,发现对return、break以及continue的使用有点迷惑,于是自己动手测试了一下,才发现在使用foreach()处理集合时不能使用break和continue这两个方法,也就是说不能按照普通的for循环遍历集合时那样根据条件来中止遍历,而如果要实现在普通
阅读全文
摘要:GZIP是网站压缩加速的一种技术,对于开启后可以加快我们网站的打开速度,原理是经过服务器压缩,客户端浏览器快速解压的原理,可以大大减少了网站的流量。1.什么是GZIP答:GZIP最早由Jean-loup Gailly和Mark Adler创建,用于UNIX系统的文件压缩。我们在Linux中经常会用到
阅读全文
摘要:常见的http代理有:Fiddler、Charles以及下来要介绍的Mitmproxy,几款抓包软件本人都使用过,可以说是各有各的特点。Mitmproxy小巧强大,最吸引我的是它支持加入Python脚本,方便开发人员直接处理监听到的数据。 Explicit HTTP 安装 这步比较简单,直接pip
阅读全文
摘要:react-native init的时候出现问题: 报错信息 npm WARN React-native@0.35.0 requires a peer of react@~15.3.1 but none was installed. 解决方案: 方法一:npm install -save react
阅读全文
摘要:@Autowired 注释,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 通过 @Autowired的使用来消除 set ,get方法。在使用@Autowired之前,我们对一个bean配置起属性时,是这用用的 <property name="属性名" value=" 属性值"/
阅读全文
摘要:1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制.2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(对象可能在常量池里)(字符串常量对象存放在常量池中。)3. 堆:存放所有new出来的对象。4. 静态域:存
阅读全文
摘要:在说堆和栈之前,我们先说一下JVM(虚拟机)内存的划分: Java程序在运行时都要开辟空间,任何软件在运行时都要在内存中开辟空间,Java虚拟机运行时也是要开辟空间的。JVM运行时在内存中开辟一片内存区域,启动时在自己的内存区域中进行更细致的划分,因为虚拟机中每一片内存处理的方式都不同,所以要单独进
阅读全文
摘要:在计算机领域,堆栈是一个不容忽视的概念,我们编写的C语言程序基本上都要用到。但对于很多的初学着来说,堆栈是一个很模糊的概念。堆栈:一种数据结构、一个在程序运行时用于存放的地方,这可能是很多初学者的认识,因为我曾经就是这么想的和汇编语言中的堆栈一词混为一谈。我身边的一些编程的朋友以及在网上看帖遇到的朋
阅读全文
摘要:从JDK1.0版本开始,Java语言就提供了克隆机制。看到“克隆”二字,我们可能会有一些疑问。 克隆针对的是类还是对象? Java如何实现克隆? “克隆”二字对于我们并不陌生,克隆就是进行复制。现实生活中也有很多克隆的案例,比如克隆鱼、克隆羊等。从面向对象的角度来看,鱼、羊就是我们抽象出来的类,克隆
阅读全文
摘要:java克隆分为浅克隆和深克隆,概念如下: 浅拷贝(浅克隆)克隆出来的对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。 深拷贝(深克隆)克隆出来的所有变量都含有与原来的对象相同的值,那些引用其他对象的变量将指向复制出来的新对象,而不再是原有的那些被引用的对象。换
阅读全文
摘要:在学习Java的过程中,在《Java核心技术》(卷一)中看到这样一句话“因为Object类中的clone()方法是protected,所以不能直接以anObject.clone()这样的形式调用。当时看到的时候有些不解,之前学习的时候,对protected的认识是这样的 protected 修饰的类
阅读全文
摘要:一、javap命令简述 javap是jdk自带的反解析工具。它的作用就是根据class字节码文件,反解析出当前类对应的code区(汇编指令)、本地变量表、异常表和代码行偏移量映射表、常量池等等信息。当然这些信息中,有些信息(如本地变量表、指令和代码行偏移量映射表、常量池中方法的参数名称等等)需要在使
阅读全文
摘要:一只兔子旁边有100根萝卜, 兔子想把它们搬回家, 离家50米, 一次最多能搬运50根, 每走一米吃一根, 问:兔子最多能搬运多少根萝卜回家。 答:16根 问题分析: 兔子如果只取一次到家, 他是不可能再回去取剩下的, 所以必须中途返回取, 但是中途返回取消耗的代价是直接一次弄回家的3倍, 故思路应
阅读全文
摘要:1、String的‘+’,底层执行,及效率问题2、StringBilder与StringBuffer的比较 本篇博文先介绍第一个问题 为了让大家看明白, 我们举例说明吧! 为了加深理解,我们可以来做几个小实验。 javac Test 编译文件 javap -c Test 查看虚拟机指令 实验一:纯字
阅读全文
摘要:字符串"+"操作的原理 在阿里手册上意外的看到了一段关于java中对字符串的“+”运算的处理 突然间想到要详细了解下这个知识点,于是从网上找资料学习了一下。代码测试地址 一、"+"操作内部原理到底是如何实? 我们知道这里我们是无法像其他方法一样看到实现的逻辑的,原因很简单“+”拼接的字符串其实是Ja
阅读全文
摘要:1. 背景自己在测试HashSet时,发现其输出Integer是有序的。2. 测试public static void hashSetObjectTest(){Set<Integer> set = new HashSet<Integer>(); set.add(6); set.add(3); set
阅读全文
摘要:我们经常听说List是有序且可重复的,Set是无序且不重复的。这是一个误区,这里所说的顺序有两个概念,一是按照添加的顺序排列,二是按,照自然顺序a-z排列。Set并不是无序的传统所说的Set无序指的是HashSet,它不能保证元素的添加顺序,更不能保证自然顺序,而Set的其他实现类是可以实现这两种顺
阅读全文
摘要:redis默认是只支持简单key的过期处理的,像SortedSet类型,也是针对整个set的过期处理,不支持对set的某个成员的过期处理; 为了解决这个问题,做法如下: 1.存储key及值信息到redis,并将key存入set里,设置key的过期时间; 这样key可以支持过期处理并在过期后移除key
阅读全文
摘要:利用Java提供的Random类。从List或Set中随机取出一个元素,从Map中随机获取一个key或value。 因为Set没有提供get(int index)方法,仅仅能先获取一个随机数后。利用一个计数器,对Set进行循环,当计数器等于随机数时返回当前元素,对于Map的处理也类似。 不知有没有更
阅读全文
摘要:Java中我们经常要做一些判断,而对于判断的话,用的最多的便是“>”、“==”、“<”的比较,这里我们进行一个Long类型数据和long类型数据的比较大小的讲解。Java中Long和long的区别Java的数据类型分为两种:1、基本类型:byte(8),short(16),int(32),long(
阅读全文