
03 Java编程
It_BeeCoder
这个作者很懒,什么都没留下…
展开
-
Java对象内存布局示意图
前段时间在学习Java对象内存布局的时候,画了个图,便于理解。原创 2021-10-27 18:25:42 · 269 阅读 · 0 评论 -
OOM排查
OOM排查过程步骤1、先查看应用进程号pid: ps -ef | grep 应用名 2、查看pid垃圾回收情况:jstat -gc pid 5000(时间间隔)即会每5秒一次显示进程号为68842的java进成的GC情况,显示内容如下图:结果说明:显示内容说明如下(部分结果是通过其他其他参数显示的,暂不说明):S0C:年轻代中第一个survivor(幸存区)的容量 (字节)S1C:年轻代中第二个survivor(幸存区)的容量 (字节)S0U:年轻代...转载 2020-08-15 21:49:21 · 357 阅读 · 0 评论 -
JAVA堆栈
基本概念1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制.2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(对象可能在常量池里)(字符串常量对象存放在常量池中。)3. 堆:存放所有new出来的对象。4. 静态域:存放静态成员(static定义的)5. 常量池:存放字符串常量和基本类型常量(public static final)。有时,在嵌入式系统中,常量本身会和其他部分分割离开(由于版权等其他原因...转载 2020-08-15 21:32:49 · 252 阅读 · 0 评论 -
Java修饰符大汇总
前言想必大家已经对常用的修饰符有所了解,比如public、protected、private和final等等,已经知道大概是怎么用的,但是涉及到具体可能就有所搪塞,比如哪些可以修饰类,哪些可以修饰方法,诸如此类,此篇博文的目的就是汇总常见的情况。分类Java语言提供了很多修饰符,大概分为两类: 1. 访问权限修饰符 2. 非访问权限修饰符访问权限修饰符public:共有访问。对所有的类都可见。pr...转载 2018-05-12 22:39:31 · 178 阅读 · 0 评论 -
Java基础知识点
下文将罗列在实际学习开发中遇到的容易忘记的知识点,虽然简单,但有必要记下来随时查看。 概念1:try-catch-finally块中,finally块在以下几种情况将不会执行。(1)finally块中发生了异常。(2)程序所在线程死亡。(3)在前面的代码中用了System.exit();(4)关闭了CPU概念2:泛型是什么?答:泛型主要解决安全和代码重用率的问题,它有自动装箱和拆箱的功能。利用与一...转载 2018-05-12 20:18:54 · 291 阅读 · 0 评论 -
try语句的finally到底是否执行
谁能给我我解释一下这段程序的结果为什么是:2.而不是:3代码如下:class Test {public int aaa() {int x = 1; try {return ++x; } catch (Exception e) { } finally { ++x; }return x; } public sta...转载 2018-03-20 20:21:18 · 585 阅读 · 0 评论 -
关于java的try...catch块中finally语句何时被执行的问题
背景:最近在复习Java的时候,遇到了一个关于try catch 中finally什么时候执行的问题,然后网上查阅了一些资料,这里总结一下:Case1:finally可以没有,也可以只有一个。无论有没有发生异常,它总会在这个异常处理结构的最后运行。即使你在try块内用return返回了,在返回前,finally总是要执行,这以便让你有机会能够在异常处理最后做一些清理工作。如关闭数据库连接等等。注...原创 2018-03-20 20:14:30 · 2150 阅读 · 0 评论 -
JVM 堆内存设置原理
堆内存设置原理JVM堆内存分为2块:Permanent Space 和 Heap Space。Permanent 即 持久代(Permanent Generation),主要存放的是Java类定义信息,与垃圾收集器要收集的Java对象关系不大。Heap = { Old + NEW = {Eden, from, to} },Old 即 年老代(Old Generation),New 即 年轻代(Yo...转载 2018-03-29 22:10:09 · 283 阅读 · 0 评论 -
Java面向对象特性介绍
!、Java语言中面向对象有四大特征:1)抽象:将某一类的实体所共有的属性和方法进行抽象;2)封装:将对象的属性和方法封装到同一个类中,外部对象对类的属性的访问只能通过类的方法进行访问;3)继承:子对象继承父对象的所有属性和方法;4)多态:子对象重写父对象中的方法,具体包括:方法的重写和重载;2、Java中的反射机制1)通俗的理解:在Java中的反射机制是指在运行状态中,对于任意一个类都能够知道这...原创 2018-03-17 14:09:35 · 370 阅读 · 0 评论 -
java中修改Excel表格内容
如何在java中修改.xls或.xlsx表格中的内容呢?朋友需要帮忙学习了一下,需求其实很简单,有很多表格文件,需要将其中一部分的数据进行修改并保存到源文件。看到这样的需求,肯定大多数人第一时间想到的就是“查找替换”,但如果这个文件有成百上千个呢?如果你能找到成百上千个人帮你查找替换,那我就呵呵了,表示你已成仙,不需要看鄙人的博文了。下面说一下我的思路,刚开始用到了jxl这个jar包中的方法,...转载 2017-07-23 21:49:34 · 4485 阅读 · 2 评论 -
java并发编程--一道经典多线程题的2种解法
"font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 18px; white-space: normal;">coolxing按: 转载请注明作者和出处, 如有谬误, 欢迎在评论中指正.] 问题的描述启动3个线程打印递增的数字, 线程1先打印1,2,3,4,5, 然后是线程2打印6,7,8,9,10,转载 2017-12-27 17:43:45 · 447 阅读 · 0 评论 -
Java基础知识
今天在牛客网刷题时碰到了这样一道题,感觉是很基础的知识点,但是要做出来并不容易,先来看一下题目/** * Created by zmt on 2016/12/22. */ public class Test { public static void main(String [] args){ System.out.println(new B().getValue(...转载 2018-05-12 22:04:12 · 204 阅读 · 0 评论 -
Java修饰符大汇总
前言想必大家已经对常用的修饰符有所了解,比如public、protected、private和final等等,已经知道大概是怎么用的,但是涉及到具体可能就有所搪塞,比如哪些可以修饰类,哪些可以修饰方法,诸如此类,此篇博文的目的就是汇总常见的情况。分类Java语言提供了很多修饰符,大概分为两类: 1. 访问权限修饰符 2. 非访问权限修饰符访问权限修饰符public:共有访问。对所有的类都可见。pr...转载 2018-05-12 22:17:43 · 239 阅读 · 0 评论 -
信息熵
信息熵信息熵是对某一件事件的发生各种结果的信息量的期望值。熵越小,意味着这个事件的不确定性越小,即我们得到事件结果的代价越小。相反,熵越大,事件的随机性越强,得到事件结果的代价也随之增加。另一种理解可以用编码来解释,信息熵表示了描述一件事件的发生结果的平均编码长度。H(X) = - \sum_{i}p(x_i)log{p(x_i)}1公式的理解首先公式的原型其实是:H(X) = \sum_{i}p...转载 2018-05-12 22:19:25 · 590 阅读 · 0 评论 -
Java 异常模型综述
一. 异常的引入及基础 发现错误的理想时机是在编译阶段,也就是在你试图运行程序之前。然而,编译期间编译器并不能找出所有的错误,余下的错误只有在运行期才能发现和解决,这类错误就是 Throwable。 这就需要错误源能够通过某种方式,把适当的信息传递给某个接收者,该接收者将知道如何正确的处理这个问题,这就是Java的错误报告机制 —— 异常机制。该机制使得程序把 在正常执行过程中做什么事的代码 与...转载 2018-06-06 16:35:33 · 510 阅读 · 0 评论 -
Map 综述(二):彻头彻尾理解 LinkedHashMap
本文原创作者:书呆子Rico 作者博客地址:http://blog.csdn.net/justloveyou_/摘要: HashMap和双向链表合二为一即是LinkedHashMap。所谓LinkedHashMap,其落脚点在HashMap,因此更准确地说,它是一个将所有Entry节点链入一个双向链表的HashMap。由于LinkedHashMap是HashMap的子类,所以LinkedHash...转载 2018-06-06 16:38:54 · 306 阅读 · 0 评论 -
深入理解java异常处理机制
1. 引子 try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解。不过,我亲自体验的“教训”告诉我,这个东西可不是想象中的那么简单、听话。不信?那你看看下面的代码,“猜猜”它执行后的结果会是什么?不要往后看答案、也不许执行代码看真正答案哦。如果你的答案是正确,那么这篇文章你就不用浪费时间看啦。package Test; ...转载 2018-06-06 16:41:16 · 308 阅读 · 0 评论 -
关于 Java 中 finally 语句块的深度辨析
可不能小看这个简单的 finally,看似简单的问题背后,却隐藏了无数的玄机。接下来我就带您一步一步的揭开这个 finally 的神秘面纱。问题分析首先来问大家一个问题:finally 语句块一定会执行吗?很多人都认为 finally 语句块是肯定要执行的,其中也包括一些很有经验的 Java 程序员。可惜并不像大多人所认为的那样,对于这个问题,答案当然是否定的,我们先来看下面这个例子。清单 1.1...转载 2018-06-06 16:42:32 · 365 阅读 · 0 评论 -
Java调用weka.jar利用交叉验证方法进行分类
一直是用weka的explorer进行分类,但是现在需要重复实验100次,人工肯定搞不定了,所以试着写代码调用weka.jar来实现之前的方法。首先不知道怎么调用J48方法,之后又不知道怎么实现交叉验证方法,后面又不知道怎么进行评价,其实,weka.jar都给实现了,只管简单调用就行。也就是说explorer能实现的weka.jar都能实现,关键是去查看帮助文档和源代码,知道是哪个方法实现了哪个功...转载 2018-06-25 22:04:37 · 577 阅读 · 0 评论 -
通过weka.jar包来进行数据预处理
前言:注意首先要将weka.jar包加载到相应的路径中去。程序中的数据也是用的weka自带的数据。扩展:eclipse添加jar包的操作方法:打开eclipse ,在对应的工程下右击,选择Build Path ->选择Configure Build Path ->选择Libraries ->点击Add External JARs ->然后到你的jar包所在路径选择它。...转载 2018-06-25 22:10:34 · 578 阅读 · 1 评论 -
java 三个线程交替执行
package cn.itcast.gz; import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.uti转载 2017-12-27 17:41:08 · 3178 阅读 · 1 评论 -
Java并发编程规则:判定对象是否存在多线程访问
判定规则:无论何时,只要存在多于一个线程访问给定的状态变量,而其中某个线程会写入该变量,此时必须使用同步来协调对线程的访问。关键字使用:使用关键字synchronized和volatile来实现状态变量的同步修改。一般将涉及的变量修改的方法改为synchronized修饰的方法public synchronized void change(){} ,将可变对象用synchron转载 2017-12-23 16:22:16 · 579 阅读 · 0 评论 -
java中String\十六进制String\byte[]之间相互转换函数
From:http://tting.iteye.com/blog/1455414Java代码 java二进制,字节数组,字符,十六进制,BCD编码转换2007-06-07 00:17/** *//** * 把16进制字符串转换成字节数组 * @param hex * @return */ pu转载 2017-03-16 22:31:18 · 434 阅读 · 0 评论 -
java整数和byte数组之间的转换
From:http://blog.csdn.net/aotian16/article/details/9859213[java] view plain copypublic class NumberUtil { /** * int整数转换为4字节的byte数组 * * @param i转载 2017-03-16 22:26:37 · 2793 阅读 · 0 评论 -
Android--获取当前系统时间
From:http://blog.csdn.net/zhangli_/article/details/52262599import java.text.SimpleDateFormat;SimpleDateFormat formatter = new SimpleDateFormat ("yyyy年MM月dd日 HH:mm:ss ");Date curDate = new转载 2017-03-29 10:04:33 · 3678 阅读 · 0 评论 -
Timer的schedule和scheduleAtFixedRate方法的区别解析
From:http://blog.csdn.net/gtuu0123/article/details/6040159在Java中,Timer类主要用于定时性、周期性任务 的触发,这个类中有两个方法比较难理解,那就是schedule和scheduleAtFixedRate方法,在这里就用实例分析一下(1)schedule方法:“fixed-delay”;如果第一次执行时间被del转载 2017-03-27 22:03:40 · 415 阅读 · 0 评论 -
常用Java代码汇总
看到有用的东西,转载一下,原文见: http://www.itjhwd.com/java_code/1. 字符串有整型的相互转换[java] view plain copy String a = String.valueOf(2); //integer to numeric string int i = Integer.pa转载 2017-03-19 21:10:53 · 861 阅读 · 0 评论 -
Java中的split函数的用法
Java中的 split 函数是用于按指定字符(串)或正则去分割某个字符串,结果以字符串数组形式返回;例如:[java] view plain copyString str="1234@abc"; String[] a = str.split("@"); System.out.println("处理结果: "+a[0]+","+转载 2017-03-19 21:03:28 · 319 阅读 · 0 评论 -
Eclipse官网地址
http://www.eclipse.org/downloads/eclipse-packages/原创 2016-09-28 23:34:17 · 20339 阅读 · 0 评论 -
Java教程
Java入门教程:http://www.runoob.com/java/java-tutorial.html原创 2016-09-25 14:52:47 · 946 阅读 · 0 评论 -
java实现记事本之Java记事本源码及实现
今天给大家介绍一下关于如何用Java实现记事本功能,是学习Java swing的一个非常好的案例,下面先看一下运行结果(下载地址在最下面):下面我们来看源码: import java.awt.*; import java.awt.event.*; import java.text.*; import java.util.*; import java.io.*;转载 2016-09-25 14:46:19 · 1450 阅读 · 1 评论 -
JAVA中的字符串的indexOf函数 和substring
int indexOf(int ch,int fromIndex)函数:就是字符ch在字串fromindex位后出现的第一个位置.没有找到返加-1eg:String str="a2dfcfar1bzvb"; System.out.println(str.indexOf(97,2)); 看这个例子,输出:6 a的ASCII为97,就从d开始找a找到了输出a所在字符串的确切位置转载 2017-03-16 22:32:38 · 572 阅读 · 0 评论 -
Java中byte与(16进制)字符串的互相转换
java中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示,所以我们就可以把每个byte转换成两个相应的16进制字符,即把byte的高4位和低4位分别转换成相应的16进制字符H和L,并组合起来得到byte转换到16进制字符串的结果new String(H) + new String(L)。即byte用十六进制表示只占2位。同理,相反的转换也是将两个16进制字符转载 2017-03-16 22:33:26 · 973 阅读 · 0 评论 -
Java IO体系之强大的RandomAccessFile
现有如下的一个需求,向已存在1G数据的txt文本里末尾追加一行文字,内容如下“Lucene是一款非常优秀的全文检索库”。可能大多数朋友会觉得这个需求很easy,说实话,确实easy,然后XXX君开始实现了,直接使用Java中的流读取了txt文本里原来所有的数据转成字符串后,然后拼接了“Lucene是一款非常优秀的全文检索库”,又写回文本里了,至此,大功告成。后来需求改了,向5G数据的txt文本里追转载 2017-12-14 11:40:01 · 334 阅读 · 0 评论 -
Java Socket实现基于TCP和UDP多线程通信
一.通过Socket实现TCP编程1.1 TCP编程 TCP协议是面向连接,可靠的,有序的,以字节流的方式发送数据。基于TCP协议实现网络通信的类有客户端的Socket类和服务器端的ServerSocket类。1.2 服务器端套路 1.创建ServerSocket对象,绑定监听端口。 2.通过accept()方法监听客户端请求。 3.连接建立转载 2017-11-06 15:13:05 · 348 阅读 · 1 评论 -
TCP和UDP两个协议在Java通信编程中是如何被使用的
UDP协议与TCP协议之间的区别不再分析,主要是分析一下这两个协议在Java通信编程中是如何被使用的。首先介绍TCP,对于TCP,Java语言为它提供了良好的支持。建立TCP通信,首先需要构建服务器,并且得到服务器的IP和端口号。TCP协议下的Socket类:java.net.Socket类代表客户端连接java.net.ServerSocket类代表服务器端连接Ser转载 2017-11-06 15:08:53 · 499 阅读 · 0 评论 -
JAVA 创建TXT文件,写入文件内容,读取文件内容
[java]package com.abin.facade.ws.mail.function; import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStream; import java.io.FileReader; import java.io.RandomAcce转载 2017-07-09 21:30:02 · 674 阅读 · 0 评论 -
Java读取txt文件和写入txt文件
From:http://blog.csdn.net/monkeyduck/article/details/11525771写Java程序时经常碰到要读如txt或写入txt文件的情况,但是由于要定义好多变量,经常记不住,每次都要查,特此整理一下,简单易用,方便好懂![java] view plain copy print?pack转载 2017-07-09 21:27:15 · 415 阅读 · 0 评论 -
Java读写文件的几种方法
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.text.SimpleDateFormat;import ja转载 2017-07-09 21:24:44 · 464 阅读 · 0 评论 -
Java输出当前的日期(年月日时分秒毫秒)
package test.remote.tools.combine; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; public class TestOutDate转载 2017-07-10 16:13:41 · 19245 阅读 · 0 评论