Java基础知识
文章平均质量分 89
youngitman
个人从事金融行业,就职过易极付、思建科技等重庆一流技术团队,目前就职于某网约车平台负责整个支付系统建设。自身对金融行业有强烈的爱好。同时也实践大数据、数据存储、自动化集成和部署、分布式微服务、响应式编程、人工智能等领域。
个人博客地址:http://youngitman.tech
展开
-
关于java堆内存溢出的几种情况
【情况一】:java.lang.OutOfMemoryError: Java heap space:这种是java堆内存不够,一个原因是真不够,另一个原因是程序中有死循环;如果是java堆内存不够的话,可以通过调整JVM下面的配置来解决: <jvm-arg>-Xms3062m</jvm-arg><jvm-arg>-Xmx3062m</jvm-arg&g...原创 2016-06-16 09:51:51 · 112 阅读 · 0 评论 -
Java ByteBuffer 使用实例
package foo; import java.io.IOException; import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.charset.Charset; /** ByteBuffer 并且这三个指针的关系是 position<=li...原创 2018-01-04 18:08:28 · 1480 阅读 · 0 评论 -
ByteBuffer深入理解
ByteBuffer类是在Java NIO中常常使用的一个缓冲区类,使用它可以进行高效的IO操作,但是,如果对常用方法的理解有错误,那么就会出现意想不到的bug。 ByteBuffer类的常用方法 先来看看一个基本的程序 publicvoid test()throwsIOException{ByteBuffer buff =ByteBuffer.allocate(128);F...原创 2018-01-04 17:34:59 · 394 阅读 · 0 评论 -
HashMap的实现原理
参考文献 引用文献:深入Java集合学习系列:HashMap的实现原理,大部分参考这篇博客,只对其中进行稍微修改 自己曾经写过的:Hashmap实现原理 1. HashMap概述: HashMap是基于哈希表的Map接口的非同步实现(Hashtable跟HashMap很像,唯一的区别是Hashtalbe中的方法是线程安全的,也就是同步的)。此实现提供所有可选的映射操作,并允许使用nu...原创 2016-04-12 11:19:27 · 84 阅读 · 0 评论 -
Comparable与Comparator的区别
Comparable & Comparator 都是用来实现集合中元素的比较、排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Comparator 是在集合外部实现的排序,所以,如想实现排序,就需要在集合外定义 Comparator 接口的方法或在集合内实现 Comparable 接口的方法。Comparator位于包java.util下,而Comparable位...原创 2016-04-11 20:58:21 · 83 阅读 · 0 评论 -
Java基础知识总结
JavaCC++C#OS JVM W3C JAVA教程 JAVA考古学 StringBuffer 和StringBuilder中的两个函数: Java代码 //int indexOf(String str) :返回当前StringBuffer对象中,第一个满足str子串的位置。 //int indexOf(St...原创 2016-04-08 17:20:59 · 164 阅读 · 0 评论 -
java中的堆、栈、常量池
Java内存分配: 1. 寄存器:我们在程序中无法控制2. 栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中3. 堆:存放用new产生的数据4. 静态域:存放在对象中用static定义的静态成员5. 常量池:存放常量6. 非RAM(随机存取存储器)存储:硬盘等永久存储空间-------------------------------------------------...原创 2016-04-08 17:04:47 · 66 阅读 · 0 评论 -
Java的内存回收机制
1.Java在内存中的状态 首先我们先写一个代码为例子: Person.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 package test; import java.io.Serializable; public class Person...原创 2016-04-07 17:47:55 · 76 阅读 · 0 评论 -
Java对象值传递和对象传递的总结
值传递和对象传递的问题总结下。 先看基本类型作为参数传递的例子:public class Test1 {public static void main(String[] args) {int n = 3;System.out.println("Before change, n = " + n);changeData(n);System.out.println("After change...原创 2016-04-07 17:09:07 · 106 阅读 · 0 评论 -
Callable和Future
Callable接口类似于Runnable,从名字就可以看出来了,但是Runnable不会返回结果,并且无法抛出返回结果的异常,而Callable功能更强大一些,被线程执行后,可以返回值,这个返回值可以被Future拿到,也就是说,Future可以拿到异步执行任务的返回值,下面来看一个简单的例子: public class CallableAndFuture { public sta...原创 2017-04-29 18:36:22 · 70 阅读 · 0 评论 -
ByteBuffer常用方法详解
缓冲区(Buffer) 缓冲区(Buffer)就是在内存中预留指定大小的存储空间用来对输入/输出(I/O)的数据作临时存储,这部分预留的内存空间就叫做缓冲区: 使用缓冲区有这么两个好处: 1、减少实际的物理读写次数 2、缓冲区在创建时就被分配内存,这块内存区域一直被重用,可以减少动态分配和回收内存的次数 举个简单的例子,比如A地有1w块砖要搬到B地 由于没有工具(缓冲区),我们...原创 2016-10-15 11:49:00 · 395 阅读 · 0 评论 -
JVM内存管理及GC机制
摘要: 一、概述 Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代码,对内存泄露和溢出的问题,也不需要像C程序员那样战战兢兢。经过这么长时间的发展,Java ... 一、概述 Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是...原创 2016-08-03 16:24:10 · 91 阅读 · 0 评论 -
java堆内存溢出的几种情况
【情况一】:java.lang.OutOfMemoryError: Java heap space:这种是java堆内存不够,一个原因是真不够,另一个原因是程序中有死循环;如果是java堆内存不够的话,可以通过调整JVM下面的配置来解决: <jvm-arg>-Xms3062m</jvm-arg><jvm-arg>-Xmx3062m</jvm-arg&g...原创 2016-07-03 21:47:11 · 174 阅读 · 0 评论 -
Lombok开发指南
装在地址:http://codepub.cn/2015/07/30/Lombok-development-guidelines/ Lombok简介 Lombok是一款好用顺手的工具,就像Google Guava一样,在此予以强烈推荐,每一个Java工程师都应该使用它。Lombok是一种Java™实用工具,可用来帮助开发人员消除Java的冗长代码,尤其是对于简单的Java对象(POJO)。它通...原创 2016-06-27 09:05:02 · 147 阅读 · 0 评论 -
单例模式的几种写法(包含双检锁写法)
饿汉式单例类 Java代码 public class Singleton { private Singleton(){ } private static Singleton instance = new Singleton(); private static Singleton...原创 2016-06-16 17:37:00 · 147 阅读 · 0 评论 -
深入jar包:从jar包中读取资源文件
我们常常在代码中读取一些资源文件(比如图片,音乐,文本等等)。在单独运行的时候这些简单的处理当然不会有问题。但是,如果我们把代码打成一个jar包以后,即使将资源文件一并打包,这些东西也找不出来了。看看下面的代码: Java代码 //源代码1: package edu.hxraid; import java.io.*; public class Resourc...原创 2018-01-17 18:14:58 · 103 阅读 · 0 评论