JAVA基础
文章平均质量分 78
郭风朴
专业IT影音开发爱好者,从最基本的影音发动机“FFmpeg”到影音大厦“VLC”均有涉猎,愿与有同样爱好的你,在IT路上一直走下去。
音视频技术和营销领域骨灰级玩客
展开
-
Java语言注意事项
拔剑四顾心茫然 为何代码总出错 在给某一数值类型赋值时 先判断是否为空 防止空指针异常 数组赋值时防止出现越界的问题,越界是问题 系统不报错 偷吃粮食的bug很难找。原创 2016-01-05 21:32:26 · 451 阅读 · 0 评论 -
Java NIO系列教程(一) Java NIO 概述
Java NIO 由以下几个核心部分组成:ChannelsBuffersSelectors虽然Java NIO 中除此之外还有很多类和组件,但在我看来,Channel,Buffer 和 Selector 构成了核心的API。其它组件,如Pipe和FileLock,只不过是与三个核心组件共同使用的工具类。因此,在概述中我将集中在这三个组件上。其它组件会在单独的章节中讲到。Chan原创 2016-07-22 13:26:52 · 366 阅读 · 0 评论 -
缓冲器(Buffer)的细节
缓冲器(Buffer)的细节 从上面继承图层来看,了解Buffer很重要。 Buffer=数据+四个索引 正是四个索引才是的数据可以高效访问,这四个索引是:mark(标记),position(位置),limit(界限),capacity(容量)。 不变式标记、位置、限制和容量值遵守以下不变式:0 <= 标记 <= 位置 <= 限制 <= 容量 以下是设置和复位索引以转载 2016-07-22 14:57:24 · 703 阅读 · 0 评论 -
NIO:Buffer 详解
如你所见,在NIO中,数据的读写操作始终是与缓冲区相关联的。Channel将数据读入缓冲区,然后我们又从缓冲区访问数据。写数据时,首先将要发送的数据按顺序填入缓冲区。基本上,缓冲区只是一个列表,它的所有元素都是基本数据类型(通常为字节型)。缓冲区是定长的,它不像一些类那样可以扩展容量(例如,List,StringBuffer等)。注意,ByteBuffer是最常用的缓冲区,因为:1)它提供了读写其原创 2016-07-22 15:53:31 · 1178 阅读 · 0 评论 -
java读取文件及文件流
java读取文件或是文件流的代码,涵盖了读取jar文件中的文件流,网络文件流等,有些读取方式为了防止编码转换带来的问题,采取了动态byte[]的方式读取,源码如下 :import java.io.BufferedInputStream;import java.io.File;import java.io.BufferedOutputStream;import java.io.IOE原创 2016-07-25 11:41:57 · 735 阅读 · 0 评论 -
理解java回调机制
转帖请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/17483273),请尊重他人的辛勤劳动成果,谢谢以前不理解什么叫回调,天天听人家说加一个回调方法啥的,心里想我草,什么叫回调方法啊?然后自己就在网上找啊找啊找,找了很多也不是很明白,现在知道了,所谓回调:就是A类中调用B类中的某个方法C,然后B类中反过转载 2016-07-15 12:12:17 · 1198 阅读 · 0 评论 -
Java多线程实现异步调用
在JAVA平台,实现异步调用的角色有如下三个角色:调用者 提货单 真实数据一个调用者在调用耗时操作,不能立即返回数据时,先返回一个提货单.然后在过一断时间后凭提货单来获取真正的数据.去蛋糕店买蛋糕,不需要等蛋糕做出来(假设现做要很长时间),只需要领个提货单就可以了(去干别的事情),等到蛋糕做好了,再拿提货单取蛋糕就可以了。public class Main {转载 2016-07-27 11:20:17 · 866 阅读 · 0 评论 -
深入理解Java:注解(Annotation)基本概念
什么是注解(Annotation): Annotation(注解)就是Java提供了一种元程序中的元素关联任何信息和着任何元数据(metadata)的途径和方法。Annotion(注解)是一个接口,程序可以通过反射来获取指定程序元素的Annotion对象,然后通过Annotion对象来获取注解里面的元数据。 Annotation(注解)是JDK5.0及以后版本引入的。它可以用于创建文档原创 2016-07-20 15:01:41 · 1976 阅读 · 0 评论 -
深入理解Java:注解(Annotation)自定义注解入门
要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法。元注解: 元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解: 1.@Target, 2.@R原创 2016-07-20 15:04:18 · 1780 阅读 · 0 评论 -
Java NIO学习笔记之二-图解ByteBuffer
yteBuffer前前后后看过好几次了,实际使用也用了一些,总觉得条理不够清晰。《程序员的思维修炼》一本书讲过,主动学习,要比单纯看资料效果来的好,所以干脆写个详细点的文章来记录一下。概述ByteBuffer是NIO里用得最多的Buffer,它包含两个实现方式:HeapByteBuffer是基于Java堆的实现,而DirectByteBuffer则使用了unsafe的API进行了堆转载 2016-07-22 10:12:41 · 671 阅读 · 0 评论 -
java/C.C++线程while循环无法跳出问题分析
一、问题及现象原创 2016-05-20 18:45:05 · 1708 阅读 · 0 评论 -
Android开发:组播(多播)与广播
近期由于需要编写能够使同一局域网中的Android客户端与PC端进行自动匹配通信功能的程序,学习并试验了JAVA组播与广播的内容,记录一些理解如下:一.组播(多播)背景知识:组播使用UDP对一定范围内的地址发送相同的一组Packet,即一次可以向多个接受者发出信息,其与单播的主要区别是地址的形式。IP协议分配了一定范围的地址空间给多播(多播只能使用这个范围内的IP),IPv4中组播地址转载 2016-05-04 14:00:15 · 1561 阅读 · 0 评论 -
java中常见的几种异常
算术异常类:ArithmeticExecption空指针异常类:NullPointerException类型强制转换异常:ClassCastException数组负下标异常:NegativeArrayException数组下标越界异常:ArrayIndexOutOfBoundsException违背安全原则异常:SecturityException文转载 2016-05-31 19:10:07 · 971 阅读 · 0 评论 -
C/C++与Java各数据类型所占字节数的详细比较
C/C++的数据类型:一,整型Turbo C: [signed] int 2Byte//有符号数,-32768~32767 unsigned int 2Byte //无符号数,只能表示整数0~65535 [signed] short [int] 2Byte unsigned short [int] 2 Byte long [int] 4 Byte原创 2016-03-31 10:53:22 · 449 阅读 · 0 评论 -
java内存管理
Android app众说周之 使用java编程,编程有算法和数据结构构成,这绝对没有问题,然不仅仅包括这些,内存的使用和管理很重要ava中的内存分配是随着new一个新的对象来实现的,这个很简单,而且也还是有一些可以“改进”内存回收的机制的,其中最显眼的就是这个System.gc()函数。所以说,C++中将释放了的指针置为null的习惯要保留到Java中,因为这有可原创 2016-02-25 13:37:14 · 486 阅读 · 0 评论 -
LinkedList基本用法
LinkedList类是双向列表,列表中的每个节点都包含了对前一个和后一个元素的引用.LinkedList的构造函数如下1. public LinkedList(): ——生成空的链表2. public LinkedList(Collection col): 复制构造函数1、获取链表的第一个和最后一个元素[java] view plaincopy转载 2016-04-06 08:22:01 · 569 阅读 · 0 评论 -
Java中单字节Ascii的byte字节数组与String转换
这个东西讲起来很蹩脚.Java应用程序一般来讲在上层界面中都是使用String来描述字符串.String其实是一个双字节的数组.在java中,char是2个字节的字符,也就是说String是char的数组.但其内部的关系一般人也没有必要去研究.两个字节的字符对于经常做底层开发的人是比较讨厌的事情.底层开发一般都使用单字节的ascii码字符.在数据传输时将单字节的字符按照byte的方式进行传输.原创 2016-05-12 14:54:04 · 17364 阅读 · 0 评论 -
java 里面的string 和byte[] 怎么互转?
1.string 转 byte[]byte[] midbytes=isoString.getBytes("UTF8");//为UTF8编码byte[] isoret = srt2.getBytes("ISO-8859-1");//为ISO-8859-1编码其中ISO-8859-1为单字节的编码2.byte[]转stringString isoString = new S转载 2016-04-18 16:11:28 · 2350 阅读 · 0 评论 -
byte[]数组和int之间的转换
这里简单记录下两种转换方式:第一种:1、int与byte[]之间的转换(类似的byte short,long型)[java] view plain copy /** * 将int数值转换为占四个字节的byte数组,本方法适用于(低位在前,高位在后)的顺序。 和bytesToInt()配套使用 * @param value转载 2016-04-19 10:11:55 · 483 阅读 · 0 评论 -
java 二进制 十进制 十六进制数据类型转换
/* 很重要的,非常好用。 int n1 = 14; //十进制转成十六进制: Integer.toHexString(n1); //十进制转成八进制 Integer.toOctalString(n1); //十进制转成二进制 Integer.toBinaryString(12); //十六进原创 2016-04-19 10:29:51 · 658 阅读 · 0 评论 -
JAVA中常用IO流类:FileInputStream和FileOutputStream
FileInputStream 用于读取本地文件中的字节数据,继承自InputStream类构造方法摘要FileInputStream(File file) 通过打开一个到实际文件的连接来创建一个FileInputStream,该文件通过文件系统中的 File 对象 file 指定。FileInputStream(FileDesc转载 2016-05-03 16:10:39 · 509 阅读 · 0 评论 -
java定时器的使用(Timer)
1、在应用开发中,经常需要一些周期性的操作,比如每5分钟执行某一操作等。对于这样的操作最方便、高效的实现方式就是使用java.util.Timer工具类。private java.util.Timer timer;timer = new Timer(true);timer.schedule(new java.util.TimerTask() { public void run(转载 2016-05-28 14:48:08 · 510 阅读 · 0 评论 -
java实现条件编译
条件编译绝对是一个好东西。如在C或CPP中,可以通过预处理语句来实现条件编译。代码如下:C代码 #IFDEF DEBUG #UNDEF DEBUG #ENDIF #define DEBUG #IFDEF DEBUUG /* code block 1 */ #ELSE /* code block 2 */ #ENDIF原创 2016-04-09 11:42:32 · 1989 阅读 · 0 评论