java
沧海龙腾LV
现学现卖……
展开
-
Java队列之阻塞队列LinkedBlockingQueue
LinkedBlockingQueue是BlockingQueue中的其中一个,其实现方式为单向链表,下面看其具体实现。(均为JDK8)一、构造函数在LinkedBlockingQueue中有三个构造函数,如下图,1、LinkedBlockingQueue()这是一个无参的构造函数,其定义如下,public LinkedBlockingQueue() { this(Integer.MAX_VALUE); }在这个构造函数中调用了有参的构造函数,传入的整型转载 2020-12-04 15:29:36 · 579 阅读 · 0 评论 -
Java读取properties文件,中文出现乱码问题解决
问题的提出:初用properties,读取java properties文件的时候如果value是中文,会出现读取乱码的问题问题分析:开始以为是文件保存编码问题,把eclipse中所有的文件编码都修改成utf8,问题依然存在;把内容复制到notepad++进行utf8编码转换,问题依旧;上网搜索有人提议重写properties类或者用jdk自带的编码转换工具,嫌麻烦而且凭感觉jdk开发者不可能...原创 2019-04-15 15:35:35 · 5598 阅读 · 0 评论 -
Java使用httpclient封装post请求和get请求
package com.marco.common; import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.URI;import java.util.ArrayList;import java.util.Iterator;im...原创 2019-03-04 12:51:02 · 883 阅读 · 0 评论 -
JAVA中synchronized、类锁,对象锁的介绍
在java编程中,经常需要用到同步,而用得最多的也许是synchronized关键字了,下面看看这个关键字的用法。因为synchronized关键字涉及到锁的概念,所以先来了解一些相关的锁知识。java的内置锁:每个java对象都可以用做一个实现同步的锁,这些锁成为内置锁。线程进入同步代码块或方法的时候会自动获得该锁,在退出同步代码块或方法时会释放该锁。获得内置锁的唯一途径就是进入这个锁的...转载 2018-11-29 16:05:17 · 170 阅读 · 0 评论 -
Java中List集合和JSON对象之间的相互转换
第一种方法:代码实现/** *数据封装成json * * @param items 物料入库数据 * @return json * @throws JSONException */public static String GoodIn2Json(List<GoodInfo> items) throws JSONEx...原创 2018-08-20 15:53:35 · 50625 阅读 · 6 评论 -
JAVA NIO缓冲区(Buffer)------ByteBuffer常用方法详解
缓冲区(Buffer)缓冲区(Buffer)就是在内存中预留指定大小的存储空间用来对输入/输出(I/O)的数据作临时存储,这部分预留的内存空间就叫做缓冲区:使用缓冲区有这么两个好处:1、减少实际的物理读写次数2、缓冲区在创建时就被分配内存,这块内存区域一直被重用,可以减少动态分配和回收内存的次数举个简单的例子,比如A地有1w块砖要搬到B地由于没有工具(缓冲区),我们一次只能搬一本,那么就要搬1w次...原创 2018-07-14 16:27:11 · 62992 阅读 · 2 评论 -
Java线程面试题 Top 50
原文链接:http://www.importnew.com/12773.html 不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎。大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发、调试、优化经验,所以线程相关的问题在面试中经常会被提到。 在典型的Java...转载 2018-07-13 15:59:36 · 348 阅读 · 0 评论 -
Java并发编程:volatile关键字解析
volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我...转载 2018-07-13 15:55:06 · 123 阅读 · 0 评论 -
Java中的数组互相赋值,形参传递,地址传递
本文探讨Java中数组中的赋值问题。在探讨这个问题之前必须先弄懂一件事,Java中的数组到底是什么东西?是类,是对象,还是什么其他奇奇怪怪的东西。答案是:Java中的数组本质上是对象。但是这个对象不是通过某个类实例化来的,而是JVM创建的,这也就不难解释对于一个数组对象arr,我们可以直接通过arr.length访问数组的长度。现在我们知道了Java中数组本质上是对象,那么我们来看一下这样的代...转载 2018-07-16 20:34:59 · 3290 阅读 · 0 评论 -
JAVA MD5加密工具
1、工具类import java.security.MessageDigest;/** * 采用MD5加密解密 * * @author xl * @datetime 2011-10-13 */public class MD5Util { /*** * MD5加码 生成32位小写md5码 */ public static String strTo...原创 2018-06-01 15:14:18 · 618 阅读 · 0 评论 -
JAVA CRC16校验工具
1、工具类import java.math.BigInteger;/** * CRC校验 * @author xl * */public class CRC16Util { static byte[] crc16_tab_h = { (byte) 0x00, (byte) 0xC1, (byte) 0x81, (byte) 0x40, (byte) 0x01, (byte)...原创 2018-06-01 15:18:21 · 5106 阅读 · 0 评论 -
Java中的volatile关键字用法解析
一、Java中的static和volatile变量的区别在java中声明一个静态变量,意味着只有一个副本,无论创建了多少个类的对象,即使没有创建对象,变量也可以访问,但是线程可能具有本地缓存的值。当变量volatile而不是静态时,每个object都有一个变量,所以,表面看来,与正常变量没有区别,但是与静态完全不同。然而,即使使用object字段,线程也可能在本地缓存变量值。这意味着如果两个线程同...原创 2018-04-26 14:33:56 · 243 阅读 · 0 评论 -
JAVA网络编程之TCP通讯的实现步骤
与UDP相比,TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。1、JAVA Socket简介所谓socket 通常也称作”套接字“,用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过”套接字”向网络发出请求或者应答网络请求。以J2SDK-1.3为例,Socket和ServerSocket类库位于java.net包中。ServerSocket用于服务器端,Socket是建立网络...原创 2018-04-12 15:00:18 · 528 阅读 · 0 评论 -
JAVA网络编程之UDP通讯的实现步骤
与TCP相比,UDP是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。UDP通讯主要用到两个类DatagramPacket和DatagramSocket,下面分别介绍。1、DatagramSocket具体api见:http://www.javaweb.cc/help/JavaAPI1.6/index.html?java/nio/ReadOnlyBufferException.html...原创 2018-04-12 09:38:34 · 2186 阅读 · 0 评论