![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础
文章平均质量分 56
luffy
JD数据罗盘
展开
-
ArrayList的实现原理
1. ArrayList概述: ArrayList是List接口的可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。 每个ArrayList实例都有一个容量,该容量是指用来存储列表元素的数组的大小。它总是至少等于列表的大小。随着向ArrayList中不断添加元 素,其容转载 2015-02-11 14:21:03 · 634 阅读 · 0 评论 -
Java Socket编程
<br />一般,就这么的形式,熟悉后就这么用了。<br />客户端:<br />首先,创建客户端套接字<br />Socket s = new Socket(ip, port);<br />通过套接字,可以获得输入流和输出流 <br />InputStream is = s.getInputStream();<br />OutputStream os = s.getOutStream();<br />接下来就是对输入流和输出流的装饰了,例如:<br />DataOutputStream dos =原创 2011-04-28 23:48:00 · 1109 阅读 · 0 评论 -
Java 数据库
一.Java与数据库的连接方式有哪些?1.JDBC-ODBC桥驱动将JDBC调用转换为对ODBC的调用客户端需要先配置ODBC数据源与其他数据库的连接,并且必须已安装ODBC驱动2.本地API驱动将JDBC调用转换为对数据库客户端API的调用客户端需要安装数据库厂商提供的客户端和代码库3.网络协议驱动将JDBC调用转换为DBMS-independent网络协议,然后由服务器端的中间件转换为具体数据库服务器可以接收的网络协议(相对第二种,不需要客户端加载任何驱动和代码库)4.本地协议驱动将JDBC调用直接转换原创 2011-04-27 20:40:00 · 534 阅读 · 0 评论 -
classpath,path,java_home的设置(转)
<br />1,设置JAVA_HOME: <br /> 一、为了方便引用,比如,你JDK安装在C:/Program Files/Java/jdk1.6.0目录里,则设置JAVA_HOME为该目录路径, 那么以后你要使用这个路径的时候, 只需输入%JAVA_HOME%即可, 避免每次引用都输入很长的路径串; <br /> 二、归一原则, 当你JDK路径被迫改变的时候, 你仅需更改JAVA_HOME的变量值即可, 否则,你就要更改任何用绝对路径引用JDK目录的文档, 要是万一你没有改转载 2011-04-25 22:35:00 · 452 阅读 · 0 评论 -
Float类的小程序
<br /> 以下程序是输出结果:<br /> Float fl = new Float("123");<br /> Float f2 = new Float("123.0");<br /> if(fl.equals(f2)){<br /> System.out.println("00000000000");<br /> }<br /><br /> if(fl.equals("123原创 2011-04-25 21:42:00 · 641 阅读 · 0 评论 -
Java日期处理
<br />1.将一个long类型转换为格式化后的日期字符串<br /> <br />long time = 初始化的值<br />Date date = new Date(time);<br />SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");<br />String resultDate = sdf.format(date);原创 2011-04-27 19:01:00 · 615 阅读 · 0 评论 -
Java中产生随机数的两种方法
<br />一、利用random方法来生成随机数。<br /><br />在Java语言中生成随 机数相对来说比较简单,因为有一个现成的方法可以使用。在Math类中,Java语言提供了一个叫做random的方法。通过这个方法可以让系统产生随机 数。不过默认情况下,其产生的随机数范围比较小,为大于等于0到小于1的double型随机数。虽然其随机数产生的范围比较小,不能够满足日常的需求。如 日常工作中可能需要产生整数的随机数。其实,只要对这个方法进行一些灵活的处理,就可以获取任意范围的随机数转载 2011-04-25 22:20:00 · 766 阅读 · 0 评论 -
排序集合(学一点记录一点)
<br />// 快速排序<br />public static void sort1(int arr[], int s, int t) {<br /> <br /> int i = s;<br /> int j = t;<br /> int temp = 0;<br /> <br /> if(s < t) {<br /> temp = arr[i];<br />原创 2011-04-25 21:44:00 · 443 阅读 · 0 评论 -
Java设计模式
<br />一、单例模式<br />实现单例模式需要注意下面几点:<br />1.私有的构造方法。保证外部无法创建类实例;<br />2.私有的静态类型引用。因为静态就可以保证只有一个变量引用;<br />3.提供获取实例的方法。方法名一般为getInstance().<br /> <br />懒汉式:<br />class Conn {<br /> private static Conn conn; // 私有的静态类型引用<br /> private Conn() {原创 2011-04-23 01:15:00 · 358 阅读 · 0 评论 -
Java基础(备忘录)
一、1.成员函数被重载的特征:(1)相同的范围(在同一个类中)(2)函数名相同(3)参数不同(4)virtual关键字可有可无2.覆盖的特征:(1)不同的范围(分别位于派生类与基类)(2)函数名相同(3)参数相同(4)基类函数必须有virtual关键字3.静态方法不能被覆盖成非静态的方法二、class Parent { public static String staticname = "parentStaticname"; public String name = "Parent";原创 2011-04-22 22:47:00 · 508 阅读 · 0 评论 -
Java调用浏览器
<br />J2SE 6 新增了 java.awt.Desktop ,这套桌面 API 使用你的主机操作系统的文件关联以启动与特定文件类型相关联的应用程序。调用本地浏览器非常方便,且跨平台适用。view plaincopy to clipboardprint?public static void runBroswer(String webSite) { try { Desktop desktop = Desktop.getDesktop();转载 2011-04-30 19:02:00 · 496 阅读 · 0 评论 -
this关键字,super关键字,就这么几种用法,记住就是了!
1.返回调用当前方法的对象的引用例:public class Boy { public getBoy() { return this; } public static void main(String[] args) { Boy boy1 = new Boy(); Boy boy11 = boy1.getBoy(); // this代表boy1 Boy boy2 = new Boy();原创 2011-05-01 14:08:00 · 944 阅读 · 0 评论 -
HashSet
HashSet底层采用了HashMap实现的,所有放入HashSet中的集合元素实际上由HashMap的key来保存,而HashMap的value则存储一个PERSENT,它是一个静态的Object对象。public class HashSet extends AbstractSet implements Set, Cloneable, java.io.Seri原创 2015-02-10 19:22:09 · 568 阅读 · 0 评论 -
HashMap的实现原理
1. HashMap概述: HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 2. HashMap的数据结构: 在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本转载 2015-02-10 19:38:24 · 541 阅读 · 0 评论 -
Java内存分配与管理
Java内存分配与管理是Java的核心技术之一,一般Java在内存分配时会涉及到以下区域:◆寄存器:我们在程序中无法控制◆栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中◆堆:存放用new产生的数据◆静态域:存放在对象中用static定义的静态成员◆常量池:存放常量◆非RAM存储:硬盘等永久存储空间Java内转载 2015-02-10 19:25:21 · 748 阅读 · 0 评论 -
栈和堆的区别是什么? 为什么说栈的速度快,堆的速度慢?
栈与堆都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 Java的堆是一个运行时数据区,类的(对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarray等指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是转载 2015-01-31 15:02:18 · 4358 阅读 · 0 评论 -
2011新人-Java基础学习篇
一、吹水篇-摆正心态基础作为一个程序员最基本的东西,必须会,我们组以Java语言为主,C++等为辅助,学好Java基础,打牢地基,才能跳得更高、跑得更远。不要鄙视Java基础,请先放下姿态,用一种敬畏的心态去学习它吧,每一个细节都很重要,你需要细心,你需要思考它,不要没有思考过就以为你懂了,问你一个问题,知道Integer吗?你也看得懂下面的代码吧,那你知道结果是什么吗?Integer原创 2011-11-14 18:14:10 · 1003 阅读 · 5 评论 -
认识理解Java中native方法
Java不是完美的,Java的不足除了体现在运行速度上要比传统的C++慢许多之外,Java无法直接访问到操作系统底层(如系统硬件等),为此Java使用native方法来扩展Java程序的功能。 可以将native方法比作Java程序同C程序的接口,其实现步骤: 1、在Ja转载 2011-07-19 10:44:48 · 609 阅读 · 0 评论 -
Java 基础(备忘2)
<br />1.instanceof关键字<br />作用是判断一个对象是否为某个类或接口类型。<br />在变量使用多态时,可以使用instanceof关键字进行变量的类型判断,然后执行不同操作。<br /> <br />2.成员变量与局部变量的区别(背)<br />成员变量可以被public,protect, private,static修饰,局部变量不可以,两者都可以被final修饰<br />成员变量存储在堆中,局部变量存储在栈中<br />成员变量可以默认初始化,局部变量必须显式初始化<br />原创 2011-05-02 22:39:00 · 584 阅读 · 0 评论 -
Java回调函数,自己辛苦的理解
关于回调函数,网上虽然有很多解答,但发现很难掌握。你懂得了理论,但实际的应用又显得不知从何下手。凭着我个人单薄的力量,我总结了一个比较容易理解和应用的例子,通过这个例子的学习,我相信很快就能学会回调函数了。下面是具体的例子:public class SynCallback { public static void main(String[] args) { DealCallBack dcb = new DealCallBack(); final String n原创 2011-05-02 15:52:00 · 878 阅读 · 1 评论 -
详细解析Java中抽象类和接口的区别
<br />在Java语言中, abstract class 和interface是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进 行抽象类定义时对于abstract class和interface的选择显得比较随意。其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对 于问题领域本质的理解、对转载 2011-04-22 18:27:00 · 314 阅读 · 0 评论 -
Java正则表达式详解
<br />如果你曾经用过Perl或任何其他内建正则表达式支持的语言,你一定知道用正则表达式处理文本和匹配模式是多么简单。如果你不熟悉这个术语,那么“正则表达式”(Regular Expression)就是一个字符构成的串,它定义了一个用来搜索匹配字符串的模式。 <br />许多语言,包括Perl、PHP、Python、JavaScript和JScript,都支持用正则表达式处理文本,一些文本编辑器用正则表达式实现高级“搜索-替换”功能。那么Java又怎样呢?本文写作时,一个包含了用正则表达式转载 2011-04-21 19:12:00 · 353 阅读 · 0 评论 -
Windows下Resin的配置与部署
<br />Windows下Resin的配置与部署<br />Resin是CAUCHO公司(http://www.caucho.com)的产品,是一个非常流行的支持servlets 和jsp的引擎,速度非常快。Resin本身包含了一个支持HTTP/1.1的WEB服务器。虽然它可以显示动态内容,但是它显示静态内容的能力也非常强,速度直逼Apache Server。许多站点都是使用该WEB服务器构建的。<br />Resin也可以和许多其他的WEB服务器一起工作,比如Apache Server和IIS等。Res转载 2011-04-21 19:07:00 · 5698 阅读 · 2 评论 -
Java序列化与反序列化讲解
<br />首先解释两个概念,何为序列化?何为反序列化?<br /> 序列化:将对象转化成流的过程称为序列化<br /> 反序列化:将流转化成对象的过程称之为反序列化<br /> 序列化与反序列化必须遵守的原则<br /> a) Java对象<br /> 在java中要想使一个java对象可以实现序列化与反序列化,必须让该类实现java.io.Serializable接口<br /> java.io.Serializable接口定义如下:<br /> publicinterface Seria转载 2011-04-21 18:51:00 · 372 阅读 · 0 评论 -
引用 java中abstract,interface,final,static,加深理解
引用 java中abstract,interface,final,static,加深理解<br />technology 2010-06-25 22:26:39 阅读17 评论0字号:大中小Jason 的 java中abstract,interface,final,static,加深理解<br /><br />一,抽象类:abstract<br /> 1,只要有一个或一个以上抽象方法的类,必须用abstract声明为抽象类;<br /> 2,抽象类中可以有具体的实现方法;<br />转载 2011-04-21 18:50:00 · 668 阅读 · 0 评论 -
Java子类父类属性的覆盖
声明:此文章转载自http://gaolixu.javaeye.com/blog/363709在进一步了解java子类父类属性的覆盖这个知识点之前,我们先来看一段小程序:java code class ParentClass { <br /> publicint i =10; <br />} <br /> <br />publicclass SubClass extends ParentClass { <br /> publicint i =30;转载 2011-04-21 18:49:00 · 16576 阅读 · 4 评论 -
java参数传递(超经典)(强烈建议自己先写出程序的输出值)
<br />Java中的参数传递机制一直以来大家都争论不休,究竟是“传值”还是“传址(传引用)”,争论的双方各执一词,互不相让。不但“菜鸟”们一头雾水,一些“老鸟”也只知道结果却说不出所以然来。我相信看过下面的内容后,你就会明白一些。<br />先看基本类型作为参数传递的例子:<br />public class Test1 {<br /> public static void main(String[] args) {<br /> int n = 3;<br />转载 2011-04-21 18:48:00 · 989 阅读 · 0 评论 -
Java笔试题集锦
<br />1.MVC的各个部分都有那些技术来实现?如何实现? <br />答:MVC是Model-View-Controller的简写。"Model" 代表的是应用的业务逻辑(通过JavaBean,EJB组件实现), "View" 是应用的表示面(由JSP页面产生),"Controller" 是提供应用的处理过程控制(一般是一个Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。<br /> <br />2.J2EE是什么?<br />答:Je2转载 2011-04-22 17:18:00 · 554 阅读 · 0 评论 -
Java运算符优先级
运算符优先级表优先级运算符结合性1() [] .从左到右2! +(正) -(负) ~ ++ --从右向左3* / %从左向右4+(加) -(减)从左向右5<< >> >>>从左向右6< <= > >= instanceof从左向右7== !=从左向右8&(按位与)从左向右9^从左向右10|从左向右11&&从左向右12||从左向右13?:从右向左14= += -= *= /= %= &= |= ^= ~= <<= >>= >>>=从右向左 说明: 1、 该表中优先级按照从高到低原创 2011-04-21 19:02:00 · 383 阅读 · 0 评论 -
char类型与Unicode编码
<br />Java的char型是非常独特的,占用两个字节,因为Java中char型采用了Unicode编码。要理解这个问题,我们必须要理解什么是Unicode。世界上存在着多种编码方式,同一个二进制数字可以被解释成不同的符号。因此,要想打开一个文本文件,就必须知道它的编码方式,否则用错误的编码方式解读,就会出现乱码。为什么电子邮件常常出现乱码?就是因为发信人和收信人使用的编码方式不一样。可以想象,如果有一种编码,将世界上所有的符号都纳入其中。每一个符号都给予一个独一无二的编码,那么乱码问题就会消失转载 2011-04-21 18:47:00 · 1071 阅读 · 0 评论 -
实例方法和类方法
<br />前面提到成员变量可分为实例变量和类变量。同样,类中的方法也可分为实例方法和类方法。在方法前面加上static就成了类方法,例如:view plaincopy to clipboardprint?public class Example { float a, b; void sum(float x, float y) // 实例方法 { a = max(x, y); b = mi转载 2011-04-21 18:46:00 · 10140 阅读 · 1 评论 -
Java多线程Synchronized的注意细节
<br />最近做java多线程开发处理中发现synchronized的使用还是有一些细节问题要注意的。 <br /><br /> 1.synchronized与static synchronized 的区别 <br /> synchronized是对类的当前实例进行加锁,防止其他线程同时访问该类的该实例的所有synchronized块,注意这里是“类的当前实例”,类的两个不同实例就没有这种约束了。那么static synchronized恰好就是要控制类的所转载 2011-04-21 18:44:00 · 462 阅读 · 0 评论 -
内部类的学习
块代码的定义:简单来说就是处于一对{}之间的代码。内部类的定义:处于另外一个类中的具有类型名称定义块代码。匿名类的定义:已知父类或者接口标准的内部类,且不具有具体的类型名称的块代码。匿名类的实例创建必须使用new 父类名|接口名 ()来创建。)一、命名内部类——用于临时创建实例或者类型,且该类型或实例需要控制是否允许使用该类的人调用1-1:命名局部内部类public class OutClass{ public int f() { private class InnerClass转载 2011-04-21 18:53:00 · 362 阅读 · 0 评论 -
Java--数组
<br />数组(array)是相同类型变量的集合,可以使用共同的名字引用它。数组可被定义为任何类型,可以是一维或多维。数组中的一个特别要素是通过下标来访问它。数组提供了一种将有联系的信息分组的便利方法。<br />注意:如果你熟悉C/C++,请注意, Java数组的工作原理与它们不同。<br /><br /> 1、数组不是集合,它只能保存同种类型的多个原始类型或者对象的引用。数组保存的仅仅是对象的引用,而不是对象本身。<br /><br /> 2、数组本身就是对象,Java中对象是在堆中的转载 2011-04-21 18:55:00 · 406 阅读 · 0 评论 -
MySql与Java的时间类型
<br />MySql与Java的时间类型<br />MySql的时间类型有 Java中与之对应的时间类型<br />date java.sql.Date<br />Datetime java.sql.Timestamp<br />Timestamp java.sq转载 2011-04-21 19:06:00 · 392 阅读 · 0 评论 -
Java 关键字 速查表
<br />访问控制:<br />private 私有的<br />protected 受保护的<br />public 公共的<br /><br />类、方法和变量修饰符<br />abstract 声明抽象<br />class 类<br />extends 扩允,继承<br />final 终极,不可改变的<br />implements实现<br />interface 接口<br />native 本地<br />new 新,创建<br />st转载 2011-04-21 18:58:00 · 997 阅读 · 0 评论 -
Java对象的序列化和反序列化实践
当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方需要把这个Java对象转换为字节序列,才能在网络上传送;接收方则需要把字节序列再恢复为Java对象。 把Java对象转换为字节序列的过程称为对象的序列化。 把字节序列恢复为Java对象的过程称为对象的反序列化。 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中; 2) 在网络上传送对象的字节序列。一. JDK类库中转载 2011-04-21 18:38:00 · 272 阅读 · 0 评论 -
java中static详解
也是在最近项目中突然发现自己对static的某些概念不够了解,特从网上找了一篇与各位分享。<br />转自:http://e6621887.javaeye.com/blog/428527<br />二、static <br /> static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。 <br /> 被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的转载 2011-04-21 19:05:00 · 508 阅读 · 0 评论 -
String经典问题
String经典问题(==和equals区别,new String为什么创建了两个对象)2008年11月12日 09:58<br />// ==与equals的区别:<br />// ==:<br />// 1、比较的是操作符两端的操作数是否是同一个对象<br />// 2、两边的操作数必须是同一类型的(可以是父子类之间)才能编译通过。<br />// 3、比较的是地址,如果是具体的阿拉伯数字的比较,值相等则为TRUE,如:<br />// int a=10 与 long b=10L 与转载 2011-04-21 18:56:00 · 1003 阅读 · 0 评论 -
String对象的创建
<br />作者:Heart.Raid <br />http://www.javaeye.com/topic/522167<br />每次上网冲杯Java时,都能看到关于String无休无止的争论。还是觉得有必要让这个讨厌又很可爱的String美眉,赤裸裸的站在我们这些Java色狼面前了。嘿嘿....<br /><br />众所周知,String是由字符组成的串,在程序中使用频率很高。Java中的String是一个类,而并非基本数据类型。 不过她却不是普通的类哦!!!<br />【镜头1】 Stri转载 2011-04-21 18:54:00 · 1030 阅读 · 0 评论