
java技术
技术搬砖工
技术搬砖工交流微信: monky2020
展开
-
ByteBuf
ByteBufJava原生ByteBuffer使用Buffer读写数据一般遵循以下四个步骤:写入数据到Buffer(写) 调用flip()方法(写->读) 从Buffer中读取数据(读) 调用clear()方法或者compact()方法(读->写)属性 属性名 说明 byte[] buff 内部用于缓存的数组。 ...转载 2020-01-19 11:12:08 · 666 阅读 · 0 评论 -
Java- 事件处理机制
以前买一些编程语言的书,例如VB和C#方面的,有一些书我买来也就是翻翻,然后放在架上当摆设,有时候坐着看到架上有几本像样的书,虽然没怎么看过,但心里也觉的还不错。 在我以前买过的几本编程书里,好像没有专门把事件处理当作一章来讲解的。而我在网上下载的几本JAVA电子书里,却都把事件处理拿出来作了很祥细的说明。 在大多数的编程语言里,事件处理机制都是大同小异的,都有事件、事件源、事件处理方转载 2014-07-15 15:45:18 · 723 阅读 · 0 评论 -
事件驱动模型实例详解(Java篇)
或许每个软件从业者都有从学习控制台应用程序到学习可视化编程的转变过程,控制台应用程序的优点在于可以方便的练习某个语言的语法和开发习惯(如.net和java),而可视化编程的学习又可以非常方便开发出各类人机对话界面(HMI)。可视化编程或许是一个初学者开始对软件感兴趣的开始,也可能是一个软件学习的里程碑点,因为我们可以使用各类软件集成开发环境(IDE)方便的在现成的界面窗口上拖放各类组件(Compo转载 2014-07-15 17:06:36 · 2846 阅读 · 0 评论 -
浅谈 Java 中 this 的使用
谈谈 Java 中 this 的使用1. this是指当前对象自己。当在一个类中要明确指出使用对象自己的的变量或函数时就应该加上this引用。如下面这个例子中:public class A {String s = "Hello";public A(String s) {System.out.println("s = " + s);System.out.p转载 2014-07-15 17:09:14 · 340 阅读 · 0 评论 -
Java多线程编程
Java多线程编程编写具有多线程能力的程序经常会用到的方法有: run(),start(),wait(),notify(),notifyAll(),sleep(),yield(),join() 还有一个重要的关键字:synchronized 本文将对以上内容进行讲解。一:run()和start() 示例1: public class ThreadTest转载 2014-06-04 23:31:41 · 388 阅读 · 0 评论 -
java面试题
dc.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); http协议及端口,smtp协议及端口http:超文本传输协议 端口 80smtp:简单邮件传输协议 端口25 编写程序,完成文件复制功能 Servlet创转载 2014-05-22 16:46:50 · 4603 阅读 · 0 评论 -
关于java的接口回调和向上转型的理解
晚上的时候正在思考接口和对象转型若干问题,上网查了下资料,感觉这个解释的非常好,所以就转了过来,以备以后查找,也发出来给大家学习学习.接口回调是指:可以把使用实现了某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法。实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调。看下面示例。转载 2014-06-05 00:15:39 · 646 阅读 · 0 评论 -
java的基本类型和i++线程安全性的深入解析
在java中,除了long和double的8个字节、64位比特的变量外,其他的基本变量都是原子性的。java存储模型要求获取和存储操作都为原子性,但是对于非volatile的long和double变量,jvm允许将64位的读或写划分为两个32位的操作。如果读和写发生在不同的线程,这种情况读取一个非volatile类型long就可能会出现得到一个值的高32位和另一个值的低32位。转载 2014-06-05 00:57:31 · 841 阅读 · 0 评论 -
Java Serialization/序列化/反序列化
Java提供了一个机制,称为一个对象可以被表示为字节序列,包括该对象的数据以及关于该对象的类型,并存储在对象数据的类型的信息的对象序列。 yiibai.com后一个序列化的对象已经被写入到一个文件中,也可以从文件中读取和反序列化也就是,表示对象和它的数据可以用于重新创建在存储器中的对象的类型信息和字节。最令人印象深刻的是,整个过程是独立的JVM,这意味着一个对象转载 2014-06-05 01:03:02 · 445 阅读 · 0 评论 -
java的hashCode方法和equals方法
首先,想要明白hashCode的作用,必须要先知道Java中的集合。 总的来说,Java中的集合(Collection)有两类,一类是List,再有一类是Set。 前者集合内的元素是有序的,元素可以重复;后者元素无序,但元素不可重复。 那么这里就有一个比较严重的问题了:要想保证元素不重复,可两个元素是否重复应该依据什么来判断呢? 这就是Object.转载 2014-06-05 08:47:47 · 440 阅读 · 0 评论 -
字符串面试题(一)字符串逆序
几点说明1. 所有题目全部来自网络,书籍,或者我自己的面试经历,本人只是负责搜集整理。在此对原作者表示感谢!2. 我已经尽力确保文字及程序的正确性,但我毕竟是凡人,如果您发现了文章中的错误,或者有更好的解法,请一定留言相告,以免误导大家!3. 所有代码都采用C/C++编写很早就准备写一个字符串系列的面试题,本来已经写好了,大概有十几道题,但是写完才发现,文章好长,连我自己都转载 2014-06-05 09:03:15 · 510 阅读 · 0 评论 -
java当中float以及double数据类型的掌握
* java当中默认声明的小数是double类型的; * double d=4.0 * 如果声明: * float x = 4.0则会报错,需要如下写法: * float x = 4.0f或者float x = (float)4.0 * 其中4.0f后面的f只是为了区别double,并不代表任何数字上的意义 * * float 内存转载 2014-06-05 00:23:46 · 542 阅读 · 0 评论 -
HashMap实现原理分析
1. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。 数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难,插入和删除容易。转载 2014-06-05 00:39:21 · 381 阅读 · 0 评论 -
Java 理论与实践: 正确使用 Volatile 变量
volatile 变量使用指南Java™ 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量。这两种机制的提出都是为了实现代码线程的安全性。其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低),而且其使用也更容易出错。在这期的 Java 理论与实践 中,Brian Goetz 将介绍几种正确使用 volatile 变量的模式,并针对其适翻译 2014-06-05 01:01:37 · 335 阅读 · 0 评论 -
java向上转型
问题的由来:首先是方法的参数是父类对象,传入子类对象是否可行然后引出Parent p = new Children();这句代码不是很理解,google的过程中引出向上转型要理解向上转型又引出了动态绑定从动态绑定又引出了静态绑定 程序绑定的概念:绑定指的是一个方法的调用与方法所在的类(方法主体)关联起来。对java来说,绑定分为静态绑定和动态绑定;或者叫做前转载 2014-06-05 00:13:33 · 513 阅读 · 0 评论 -
Java try catch finally的执行顺序
在Java中当try、finally语句中包含return语句时,执行情况到底是怎样的,finally中的代码是否执行?第一种情况:try中包含return语句,finally中不包含.[java] view plaincopypublic class Hello{ public static void main(String[转载 2014-06-05 08:36:28 · 725 阅读 · 0 评论 -
关于java中split的使用
之前在http://shukuiyan.iteye.com/blog/507915文中已经叙述过这个问题,但是最近一次笔试中居然有碰到了这个知识点,而且还做错了,囧!学艺不精啊。题目大概是这样的:Java代码 String s2="this is a test"; String sarray[]=s2.split("/s"); System.out.print转载 2014-07-17 11:17:40 · 445 阅读 · 0 评论 -
Java正确处理InterruptedException的方法
要想讨论正确处理InterrupedtException的方法,就要知道InterruptedException是什么。根据Java Doc的定义Thrown when a thread is waiting, sleeping, or otherwise occupied, and the thread is interrupted, either before or durin转载 2014-07-17 10:56:40 · 915 阅读 · 0 评论 -
正则表达式总结
最基本的意思:小括号就是括号内看成一个整体 ,中括号就是匹配括号内的其中一个,大括号就是匹配几次但是括号里变加上其他字符就有不同意思 详细介绍 例如:{n}n是一个非负整数。匹配确定的n次。例如,“o{2}”不能匹配“Bob”中的“o”,但是能匹配“food”中的两个o。 {n,}n是一个非负整数。至少匹配n次。例如,“o{2,}”不能匹配“Bob”中的“转载 2014-07-17 13:17:06 · 572 阅读 · 0 评论 -
Java Swing制作多行滚动歌词显示控件
* @param args * @throws IOException */ public static void main(String[] args) throws IOException { /* * 测试"[", "]"的ASCII码 */ // { // char a='[', b = '转载 2014-07-17 11:33:50 · 4495 阅读 · 5 评论 -
createImage与getImage
对于Image类,我们通常用两种方法获取:一种是使用getImage方法,即从本地或网络的图片中获取其对象,而且同一个图片文件可以多次获取,每次得到的都是一个不同的对象。只有在使用时才会将图片文件的信息装入内存,使用后就从内存中消除了。另一种就是createImage,这种方法是从内存中获取对象的,如从程序界面的一个组件中获取Image对象。它可以创建一幅用于双缓冲的、可在屏幕外绘制的图像转载 2014-07-18 15:22:21 · 1584 阅读 · 0 评论 -
Java实现播放wav格式的音乐文件
import java.applet.Applet;import java.applet.AudioClip;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.File;import java.net原创 2014-07-19 11:34:30 · 4641 阅读 · 1 评论 -
java实现二分法查找
public class BinarySearch { static int[] itns = new int[]{1,2,3,4,5,6,7,8,9,11,111,323,3443};//必须是有序的才可以 public static void main(String[] args) { int num = binar转载 2014-07-19 14:13:18 · 1000 阅读 · 0 评论 -
经典线程处理打印ABC问题分析
package com;public class MyThreadPrinter2 implements Runnable { private String name; private Object prev; private Object self; private MyThreadPrinter2() { } private MyThreadPrinter2(Str转载 2014-07-19 11:46:12 · 697 阅读 · 0 评论 -
strut2笔记
我们来编写一个基于Struts2的Web程序。这个程序的功能是让用户录入两个整数,并提交给一个Struts Action,并计算这两个数的代数和,如果代码和为非负数,则跳转到positive.jsp页面,否则跳转到negative.jsp页面。 【第1步】 安装Struts2 这一步对于Struts1.x和Struts2都是必须的,只是安装的方法不同。Struts1的入转载 2014-05-23 21:38:00 · 591 阅读 · 0 评论 -
java写入文件的几种方法分享
一,FileWritter写入文件FileWritter, 字符流写入字符到文件。默认情况下,它会使用新的内容取代所有现有的内容,然而,当指定一个true (布尔)值作为FileWritter构造函数的第二个参数,它会保留现有的内容,并追加新内容在文件的末尾。1. 替换所有现有的内容与新的内容。new FileWriter(file);2. 保留现有的内容和附加在该文件的末尾的新内容。转载 2014-07-19 13:26:14 · 4913 阅读 · 0 评论 -
类 RandomAccessFile
java.io 类 RandomAccessFilejava.lang.Object java.io.RandomAccessFile所有已实现的接口: Closeable,DataInput,DataOutputpublic class RandomAccessFileextends Objectimplements DataOutput, DataIn原创 2014-07-19 13:38:38 · 648 阅读 · 0 评论 -
用io流获取了一张图片,在JPenal中显示代码
import java.awt.Container;import java.awt.Graphics;import java.awt.Image;import java.awt.Toolkit;import javax.swing.JFrame;import javax.swing.JPanel;class DemoPanel extends JPanel { priv转载 2014-07-18 16:23:14 · 1075 阅读 · 0 评论 -
java时间
这篇文章是在我发表过的(译者:已经翻译完成)的基础上的。在这里,我列出那篇文章几个你应该熟悉得要害点。假如这几点你不太清楚,我建议你读一下,了解一下。1. Java计算时间依靠1970年1月1日开始的毫秒数. 2. Date类的构造函数Date()返回代表当前创建的时刻的对象。Date的方法getTime()返回一个long值在数值上等于1970年1月1日之前或之后的时刻。3. D转载 2014-07-19 16:19:31 · 589 阅读 · 0 评论 -
面试题--三个线程循环打印ABC10次的几种解决方法
面试题--三个线程循环打印ABC10次的几种解决方法博客分类:多线程Java面试题多线程javathreadSemaphoreCondition 最近发现公司有份笔试试卷中有道多线程的题目:有三个线程分别打印A、B、C,请用多线程编程实现,在屏幕上循环打印10次ABCABC…这个最早好像是迅雷的面试题目吧,看到了然后就想重温一下这个题目的解决方法。转载 2014-07-19 11:51:29 · 10417 阅读 · 2 评论 -
java实现文件的写入数据和附加数据功能代码
package com;import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.io.RandomAccessFile;public class WriteToFileExample { publi原创 2014-07-19 13:52:12 · 1083 阅读 · 0 评论 -
java 递归生成目录
import java.io.File; public class DirRecursion { // mkdirs() public static void mkDir(File file) { if (file.getParentFile().exists()) { file.mkdir(); } else {转载 2014-07-19 14:19:59 · 5772 阅读 · 0 评论 -
键盘事件 getKeyCode() getKeyChar()以及getKeyModifiersText()
getKeyChar():处理的是比较高层的事件,返回的是每欠敲击键盘后得到的字符(中文输入法下就是汉字)。getKeyCode()键盘上每一个按钮都有对应码(Code),可用来查知用户按了什么键,如[Shift]键code为16。利用getKeyCode()方法就可以得知这个码,不过读者要注意,这个方法在keyTyped() 上是无法检测出来的,因为keyTyped()只管用户输入的转载 2014-07-18 16:42:35 · 2689 阅读 · 0 评论 -
Java Interface 是常量存放的最佳地点吗?
Java Interface 是常量存放的最佳地点吗?由于java interface中声明的字段在编译时会自动加上static final的修饰符,即声明为常量。因而interface通常是存放常量的最佳地点。然而在java的实际应用时却会产生一些问题。由于java interface中声明的字段转载 2014-05-26 20:10:09 · 507 阅读 · 0 评论 -
Java输入输出流
1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。Java的I/O流提供了读写数据的标准方法。任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法。 Java.io是大多数面向数据流的输入/输出类的主要软件包。转载 2014-05-27 23:22:10 · 535 阅读 · 0 评论 -
列出文件内容的程序-java实现
import java.util.Scanner;import java.io.FileReader;import java.io.IOException;public class listFiles原创 2014-07-05 18:37:05 · 460 阅读 · 0 评论 -
jdbc工作原理
JDBC程序描述为包含如下过程的应用:1. 引入一个必要的类2. 加载JDBC驱动程序3. 标识数据源(URL、Username、Password)4. 分配一个Connection对象5. 分配一个Statement对象6. 使用该Statement对象执行检查 SQL语句7.原创 2014-06-15 17:32:32 · 611 阅读 · 0 评论 -
java中的finally关键字
3种基本的方案:1.如果执行了原创 2014-07-05 17:01:23 · 2041 阅读 · 0 评论 -
java中常见的异常
java有几种标准的异常原创 2014-07-05 17:31:18 · 743 阅读 · 0 评论 -
java继承向上转型和向下转型和动态绑定
java继承向上转型和向下转型和动态绑定 1 概念: 把引用变量转化为子类类型,则成为向下转型。如果把引用变量转化为父类类型,则成为向上转型。 Java代码 public class Base { /** * 父类实例变量 */ String var = "baseVar"; /**转载 2014-06-03 11:03:33 · 3865 阅读 · 0 评论