随笔分类 - Java
1
Java开发
摘要:Q:程序中A句实例化了抽象类OutputStream 怎么回事?抽象类不是不能实例化的么? import java.net.*; import java.io.*; public class TCPClient { public static void main(String[] args) throws Exception { Socket s = new Socket("222.91.106.117", 6666); OutputStream os = s.getOutputStream(); // A DataOutputStream dos = new DataOu
阅读全文
摘要:问题一:下面声明了什么! String s = "Hello world!"; 许多人都做过这样的事情,但是,我们到底声明了什么?回答通常是:一个String,内容是“Hello world!”。这样模糊的回答通常是概念不清的根源。如果要准确的回答,一半的人大概会回答错误。 这个语句声明的是一个指向对象的引用,名为“s”,可以指向类型为String的任何对象,目前指向"Hello world!"这个String类型的对象。这就是真正发生的事情。我们并没有声明一个String对象,我们只是声明了一个只能指向String对象的引用变量。所以,如果在刚才那句语
阅读全文
摘要:1、sleep()和wait() wait()放弃对象锁,只有对此对象发出notify()方法,才能使其进入线程池。2、final、fially、finalize的区别3、&:是位操作符。 &&:是逻辑操作符4、多态性:允许不同的类的对象对同一消息作出响应。包括参数多态性和包含多态性。5、int是原始数据类型,Integer是引用类型,Java为int提供的封装类型。6、同步:数据在线程间共享,进行同步存取。例如:正在写的数据有可能被另一个线程读取。 异步:应用程序在对象上调用了一个花很长时间来执行的方法,且不希望让程序等待该方法返回。7、堆(heap)和栈(stack
阅读全文
摘要:1. 对于类的成员变量,不管程序有没有显式的进行初始化,Java虚拟机都会先自动给它初始化为默认值。默认值如下: Boolean false Char '\u0000'(null) byte (byte)0 short (short)0 int 0 long 0L float 0.0f double 0.0d2. 局部变量声明之后,Java虚拟机就不会自动给它初始化为默认值,因此局部变量的使用必须先经过显式的初始化。 但是需要声明的是:对于只负责接收一个表达式的值的局部变量可以不初始化,参与运算和直接输出等其它情况的局部变量需要初始化。通过下面这个测试可以看到JVM对哪些数据初
阅读全文
摘要:目录如何使用Table(1)创建一个简单的表格(2)向容器添加表格(3)改变每每一列的宽度(4)用户选择(5)创建表格模型(6)监听数据改变(7)点燃数据改变事件(8)概念:编辑器和渲染器(Editors and Renderers)(9)使用自定义渲染器(10)为单元格指定提示工具(11)为列头指定工具集(12)排序和过滤(13)使用combo box作为编辑器(14)使用其他编辑器(15)使用编辑器验证用户的文本输入(16)打印(17)例子列表如何使用Table 利用 JTable 类,可以以表格的形式展示数据,可设置允许用户编辑数据。JTable 本身不拥有或者缓存数据;它只是数据的视图
阅读全文
摘要:类层次结构图:java.lang.Object--java.awt.Component--java.awt.Container--javax.swing.JComponent--javax.swing.JTabel在使用JTable以前,我们先看一下它的构造函数有哪些, 以及应该如何使用:JTabel构造函数:JTable():建立一个新的JTables,并使用系统默认的Model.JTable(int numRows,int numColumns):建立一个具有numRows行,numColumns列的空表格,使用的是DefaultTableModel.JTable(Object[][] r
阅读全文
摘要:试着用用你会发现其实GridBagLayout真的能解决几乎所有界面布局的问题,窗口大小的随意改变也不会影响到整体布局,更重要的是它可以实现任何你想要的布局设计,只要你做到更有计划和更有耐心一点就行了。对于简单的程序使用Boborderlayout和Gridlayout就绰绰有余了, 但如果要把程序提到实际应用上你就得考虑使用GridBagLayout。当然, 做复杂的应用程序时,一开始就使用GridBagLayout就会更有效率。一旦你决定使用GridBagLayout,接下来一步便是要找一些纸和铅笔,只有你准确知道你的界面看上去需要成什么样子,你就可以敲键盘。这就是说,你应该在编码之前..
阅读全文
摘要:类层次结构图: --javax.swing.JComponent --javax.swing.JInternalFrame JinternalFrame的使用跟JFrame几乎一样,可以最大化、最小化、关闭窗口、加入菜单等功能;唯一不同的是JinternalFrame是lightweight component ,也就JInternalFrame不能单独出现,必须依附在最上层组件上。由于这个特色,JInternalFrame能够利用java提供的Look and Feel功能作出完全不同于原有操作系统所提供的窗口外型,也比JFrame更具有弹性。 一般我们会将Internal Fram加入..
阅读全文
摘要:JAVA中的类反射就是一个在当前JVM中支持类、接口和对象内省的小型的,类型安全的和可靠的API。它是通过java.lang.reflect包提供的,可以对类的能力进行分析。反射使程序代码能够访问装载到JVM中的类的内部信息。主要包括获取已装载类的字段、方法和构造函数的信息。允许编写处理类的代码.这些类是在程序运行时临时确定的,而非源代码中事先选定的。这使反射成为构建灵活的应用的主要工具。 “Class”类 JAVA中的“Class”类是JAVA中一个十分特殊的类。它和其它类 一样继承自“Object”类,其对象用以表达JAVA程序运行时的类和 接口。当一个类被加载时,JVM便自动产生一...
阅读全文
摘要:字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串,而字节流处理单元为1个字节, 操作字节和字节数组。所以字符流是由Java虚拟机将字节转化为2个字节的Unicode字符为单位的字符而成的,它对多国语言支持性比较好!如果是音频文件、图片、歌曲,用字节流好点,如果是关系到中文(文本)的,用字符流好点.(如果输入的是整数,当作文本处理) 所有文件的储存是都是字节(byte)的储存,在磁盘上保留的并不是文件的字符而是先把字符编码成字节,再储存这些字节到磁盘。在读取文件(特别是文本文件)时,也是一个字节一个字节地读取以形成字节序列. 字节流可用于任何类型的对象,包括...
阅读全文
摘要:字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢? 实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件,如图所示。下面以两个写文件的操作为主进行比较,但是在操作时字节流和字符流的操作完成之后都不关闭输出流。范例:使用字节流不关闭执行Java代码packageorg.lxh.demo12.byteiodemo;importjava.io.File;importjava.io.FileOutputStream;importjava.io.OutputStream;publicclassOu...
阅读全文
摘要:Java对于网络通讯有着非常强大的支持。不仅可以获取网络资源,传递参数到远程服务器,还可以通过Socket对象实现TCP协议,通过DatagramSocket对象实现UDP协议。同时,对于多点广播以及代理服务器也有着非常强大的支持。以下是本人在学习过程中的总结和归纳。1. Java的基本网络支持1.1 InetAddress Java中的InetAddress是一个代表IP地址的对象。IP地址可以由字节数组和字符串来分别表示,InetAddress将IP地址以对象的形式进行封装,可以更方便的操作和获取其属性。InetAddress没有构造方法,可以通过两个静态方法获得它的对象。代码如下:...
阅读全文
摘要:为了能够方便的识别网络上的每个设备,网络中的每个设备都会有一个唯一的数字标识,这个就是IP地址。在计算机网络中,现在命名IP地址的规定是IPv4协议,该协议规定每个IP地址由4个0-255之间的数字组成,例如10.0.120.34。每个接入网络的计算机都拥有唯一的IP地址,这个IP地址可能是固定的,例如网络上各种各样的服务器,也可以是动态的,例如使用ADSL拨号上网的宽带用户,无论以何种方式获得或是否是固定的,每个计算机在联网以后都拥有一个唯一的合法IP地址,就像每个手机号码一样。 但是由于IP地址不容易记忆,所以为了方便记忆,有创造了另外一个概念——域名(Domain Name),例如...
阅读全文
摘要:1. 传统的JDBC操作获取连接;创建可执行对象;执行数据库操作;2. JDBC连接的工具化, JDBC操作的工具化用公共类实现数据库的连接, 查询, 新增,更新,删除以及关闭连接操作.3. JDBC连接的配置化把连接信息配置在文本文件中,这样修改环境不需要重新编译java文件把数据库操作封装在工具类中,业务不需要关心数据库连接环境。(同第二种方法)。4. 连接池的引入对操作结束后的连接不马上关闭, 而是维持一个合理的空闲连接数, 获取连接也不一定完全新建连接, 可以从空闲连接池中获取.5. POJO, 数据的对象化POJO 在 Hibernate 语义中理解为数据库表所对应的 Domain
阅读全文
摘要:一、基本原理Hibernate是一个基于Java的开源的持久化中间件,对JDBC做了轻量的封装。采用ORM映射机制,负责实现Java对象和关系数据库之间的映射,把sql语句传给数据库,并且把数据库返回的结果封装成对象。内部封装了JDBC访问数据库的操作,向上层应用提供了面向对象的数据库访问API.优点:以对象的形式操作数据,提高开发效率,不用关心数据库种类(换数据库只要修改配值文件)。二、使用步骤 1、创建Hibernate配置文件,存储和数据库连接的相关信息,放在classes下。2、创建持久化类(数据bean并实现Serializable接口)注意:Serializable接口不是必需的,
阅读全文
摘要:一,什么是框架? 所谓框架就是提供了一组统一的接口和编程方式的可以重用组件,同时我们可以在框架中扩充我们自己的特定逻辑。二,MVC设计模式将应用程序分为3个部分:模型 Model,视图View,控制器Controller;模型组件:负责业务逻辑; 模型包含应用程序的核心功能。模型封装了应用程序的状态。有时它包含的唯一功能就是状态。它对视图或控制器一无所知。视图组件:负责表示业务范围的视图; 视图提供模型的表示。它是应用程序的 外观。视图可以访问模型的读方法,但不能访问写方法。此外,它对控制器一无所知。当更改模型时,视图应得到通知。控制器组件:负责控制用户输入的流和状态; 控制器对用户的输入作出
阅读全文
摘要:Ctrl+1快速修复(最经典的快捷键)Ctrl+D:删除当前行Ctrl+Alt+↓复制当前行到下一行(复制增加)Ctrl+Alt+↑复制当前行到上一行(复制增加)Alt+↓当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)Alt+↑当前行和上面一行交互位置(同上)Alt+←前一个编辑的页面Alt+→下一个编辑的页面(当然是针对上面那条来说了)Alt+Enter显示当前选择资源(工程,or文件or文件)的属性Shift+Enter在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后)Shift+Ctrl+Enter在当前行插入空行(原理同上条)Ctrl+Q定位到最后
阅读全文
摘要:在JAVA中实现定时器功能要用的二个类是Timer,TimerTask Timer类是用来执行任务的类,它接受一个TimerTask做参数Timer有两种执行任务的模式,最常用的是schedule,它可以以两种方式执行任务:1:在某个时间(Data),2:在某个固定的时间之后(int delay).这两种方式都可以指定任务执行的频率,本文有二个例子,一个是简单的一个是用了内部类1.简单实例先写一个类public class TimeTest {public static void main(String[] args) { Timer timer = new Timer(); timer.sc
阅读全文
摘要:java中:数据类型大小最小值最大值booleanbyte8-bit(一个字节)-128+127char16-bit(2个字节)Unicode 0Unicode 216-1short16-bit(2个字节)-215+215-1int32-bit(4个字节)-231+231-1float32-bit(4个字节)IEEE754IEEE754long64-bit(8个字节)-263263-1double64-bit(8个字节)IEEE754IEEE754vc中:TypeDefault SizeDescription基础类型全是小写说明:这些基础数据类型对于MFC还是API都是被支持的boolean
阅读全文
摘要:转自:http://www.cnblogs.com/Gavinzhao/archive/2009/11/10/1599700.html1.面向接口编程和面向对象编程是什么关系 首先,面向接口编程和面向对象编程并不是平级的,它并不是比面向对象编程更先进的一种独立的编程思想,而是附属于面向对象思想体系,属于其一部分。或者说,它是面向对象编程体系中的思想精髓之一。2.接口的本质 接口,在表面上是由几个没有主体代码的方法定义组成的集合体,有唯一的名称,可以被类或其他接口所实现(或者也可以说继承)。它在形式上可能是如下的样子:interfaceInterfaceName{voidMethod1();vo
阅读全文
1