Java中List和ArrayList、LinkedList的区别(转)

List 是接口,ArrayList和LinkedList是List的实现类。

List:是一个有序的集合,可以包含重复的元素。提供了按索引访问的方式。它继承 Collection。
List有两个重要的实现类:ArrayList 和 LinkedList
ArrayList:我们可以将其看作是能够自动增长容量的数组。
利用ArrayList的toArray()返回一个数组。
Arrays.asList()返回一个列表。
1.ArrayList底层采用数组实现,当使用不带参数的构造方法生成ArrayList对象时,实际上会在底层生成一个长度为10的Object类型数组。
2.如果增加的元素个数超过了10个,那么ArrayList底层会新生成一个数组,长度为原数组的1.5倍+1,然后将原数组的内容复制到新数组当中,并且后续增加的内容都会放到新数组当中。当新数组无法容纳增加的元素时,重复该过程。
3.对于ArrayList元素的删除操作,需要将被删除元素的后续元素向前移动,代价比较高。
4.集合当中只能放置对象的引用,无法放置原生数据类型,我们需要使用原生数据类型的包装类才能加入到集合当中。
5.集合当中放置的都是Object类型,因此取出来的也是Object类型,那么必须要使用强制类型转换将其转换为真正的类型(放置进去的类型)。

===========================

ArrayList的内部实现是基于内部数组Object[],所以从概念上讲,它更象数组,但LinkedList的内部实现是基于一组连接的记录,所以,它更象一个链表结构,所以,它们在性能上有很大的差别:
ArrayList: 从上面的分析可知,在ArrayList的前面或中间插入数据时,你必须将其后的所有数据相应的后移,这样必然要花费较多时间,所以,当你的操作是在一列数据的后面添加数据而不是在前面或中间,并且需要随机地访问其中的元素时,使用ArrayList会提供比较好的性能;

LinkedList: 而访问链表中的某个元素时,就必须从链表的一端开始沿着连接方向一个一个元素地去查找,直到找到所需的元素为止,所以,当你的操作是在一列数据的前面或中间添加或删除数据,并且按照顺序访问其中的元素时,就应该使用LinkedList了。

思考题:两者的常用使用场景又有哪些呢?

Eclipse与MyEclipse的区别

Eclipse 是一个IDE(Integrated Developing Environment),而这个IDE是允许安装第三方开发的插件来使自身的功能得到扩展和增强的,而Myeclipse就是其中的一种有名的插件集之一,主要是为J2EE开发;MyEclipse将开发者常用到的一些有用的插件都集合起来,提供一种高级编程环境,可以比较轻松完成struts,Hibernate,Spring布局,编写strtus-config.xml;但它是收费的,没Eclipse   MyEclipse是没用的。lomboz也是类似MyEclipse的插件,不过是免费的,当然功能没有MyEclipse好。


Eclipse是一个开放源代码,基于Java的可扩张的开发平台,多数人都是将Eclipse作为Java的集成开发环境使用,虽然Eclipse使用Java开发:但Eclipse不仅仅局限于Java开发,还可用于其它语言的开发,如C/C++;Eclipse是一个框架和一组服务,它通过各种插件来构建开发环境,因此只要提供支持C/C++ 插件便能进行相应语言的开发. Continue reading

Eclipse的PHP插件PHPEclipse

PHPeclipse是什么?

PHPeclipse是Eclipse的一个插件,它为php开发人员提供了一个集成的开发环境。

PHPeclipse这个插件包括的功能有:PHP语法分析,调试,代码格式化,大纲视图,代码模板定制等。

PHPEclipse的官方网站是:http://www.phpeclipse.de/http://www.phpeclipse.net/

安装该插件需要什么软件?

使用PHPeclipse之前你必须安装一下软件:

1、Eclipse3.X   Downland:http://www.eclipse.org/downloads/

2、jdk5.0/更高版本

3、DBG PHP Debugger matching the PHP version you are using

Downland:http://superb-west.dl.sourceforge.net/sourceforge/dbg2/dbg-2.15.5-win32.zip

4、Eclipse Web Tools Platform Project 1.0.x Continue reading

Eclipse Helios 3.6.2 官网下载地址

从上至下依次为:
Windows 32bit
Windows 64bit
Linux  32bit
Linux  64bit

Eclipse IDE for Java Developers

http://mirror.bjtu.edu.cn/eclipse/technology/epp/downloads/release/helios/SR2/eclipse-java-helios-SR2-win32-x86_64.zip

java连接mysql数据库实例(测试无误)

许多刚刚接触数据库的同学都经历过一段痛苦的生活吧!小则1下午,多则N天都看一个小程序发愁,怎么就是连不上了。

  首先下载安装配置MYSQL可以到百度上随便找一个下载地址http://www.onlinedown.net/soft/3573.htm

  然后在去下载MYSQL驱动包。解压后会有一个名字类似mysql-connector-java-5.1.5-bin.jar的文件(讯雷下载地址:http://119.147.41.16/down1?cid=95014987FD948875481E4E71B19CF675A975A1F7&t=2&fmt=&usrinput=mysql5.1&dt=2006000),这里用的是5.1.7版本的

  将这个文件拷贝到%java_home%/lib文件夹下。

  右键我的电脑->属性->高级->环境变量。在classpath的后面加上;%java_home%/lib/mysql-connector-java-5.1.5-bin.jar;

  好了,现在我们已经基本做完了准备工作了。

  打开mysql数据库

  create database studentinfo ;建立一个名为studentinfo的数据库

 

 下面是一段小测试程序

 

import java.sql.*;
            public class Test {
            public static Connection getConnection() throws SQLException ,
            java.lang.ClassNotFoundException{
            String url = “jdbc:mysql://localhost:3306/studentinfo”;
            Class.forName(“com.mysql.jdbc.Driver”);
            String userName = “root”;
            String password = “123”;
            Connection con = DriverManager.getConnection(url,userName,password);
            return con;
            }
            public static void main(String[] args) {
            try{
            Connection con = getConnection();
            Statement sql = con.createStatement();
            sql.execute(“drop table if exists student”);
            sql.execute(“create table student(id int not null auto_increment,name varchar(20) not null default ‘name’,math int not null default 60,primary key(id));”);
            sql.execute(“insert student values(1,’AAA’,’99’)”);
            sql.execute(“insert student values(2,’BBB’,’77’)”);
            sql.execute(“insert student values(3,’CCC’,’65’)”);
            String query = “select * from student”;
            ResultSet result = sql.executeQuery(query);
            System.out.println(“Student表数据如下:”);
            System.out.println(“———————————“);
            System.out.println(“学号”+” “+”姓名”+” “+”数学成绩”);
            System.out.println(“———————————“);
            int number;
            String name;
            String math;
            while(result.next()){
            number = result.getInt(“id”);
            name = result.getString(“name”);
            math = result.getString(“math”);
            System.out.println(number + ” ” + name + ” ” + math);
            }
            sql.close();
            con.close();
            }catch(java.lang.ClassNotFoundException e){
            System.err.println(“ClassNotFoundException:” + e.getMessage());
            }catch(SQLException ex){
            System.err.println(“SQLException:” + ex.getMessage());
            }
            }
            }

 

 进到dos下状态,执行javac Test.java和java Test即可.

这时候观察一下控制台时候出现了

Student表数据如下:
———————————
学号 姓名 数学成绩
———————————
1 AAA 99
2 BBB 77
3 CCC 65

 

OK搞定

 但是别开心的太早了,其中还有很多小细节,比如说会出现找不到com.mysql.jdbc.Driver…

下面就说一个经常能碰到的问题和解决办法

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
如果出现上面的那个异常,则标明没有找到com.mysql.jdbc.Driver这个文件。这个时候你可以把mysql-connector- java-5.1.5-bin.jar这个文件加入到我们的工程里,在我们的工程右键->首选项->Java BuildPath->Libraries->addExternal Jars把mysql-connector-java-5.1.5-bin.jar加进去。应该就是OK了。如果还是出那个错,SORRY,我也没办法了。

JDBC连接MySQL数据库关键的四个步骤(初学必看)

1、查找驱动程序

  MySQL目前提供的Java驱动程序为Connection/J,可以从MySQL官方网站下载,并找到mysql-connector-java-3.0.15-ga-bin.jar文件,此驱动程序为纯Java驱动程序,JDBC链接MySQL不需做其他配置。

  2、动态指定classpath

  如果需要执行时动态指定classpath,就在执行时采用-cp方式。否则将上面的.jar文件加入到classpath环境变量中。

  3、加载JDBC 连接MySQL

 

  1. try{  
  2.  Class.forName(com.mysql.jdbc.Driver);  
  3.  System.out.println(Success loading Mysql Driver!);  
  4. }catch(Exception e)  
  5. {  
  6.  System.out.println(Error loading Mysql Driver!);  
  7.  e.printStackTrace();  

  4、设置JDBC连接MySQL的URL

 

jdbc:mysql://localhost/databasename[?pa=va][&pa=va] 

java mysql数据库的连接

例子:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*,java.io.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>display message</title>

<%   
   String url="jdbc:mysql://localhost:3306/shujukuming";

  try{
    Class.forName("com.mysql.jdbc.Driver");
    Connection dcon=DriverManager.getConnection(url,"root","shujukumima");
    String sql="select * from message;";
 Statement stmt=dcon.createStatement();
 ResultSet rs=stmt.executeQuery(sql);

 if(rs.next())
 {

 int id=rs.getInt("id");
 String name=rs.getString("name");
 String title=rs.getString("title");
 String content=rs.getString("content");
 java.sql.Date messageDate=rs.getDate("messageDate");
%>
  <table width="249" border="1" align="center">
  <tr>
    <td width="111">name:<%=name%></td>
    <td width="122">time:<%=messageDate%></td>
  </tr>
  <tr>
    <td>title:<%=title%></td>
    <td>id:<%=id%></td>
  </tr>
  <tr>
    <td height="82" colspan="2"> <%=content%></td>
  </tr>
</table>
 <% }} catch(Exception e){
         out.print("wrong here");
}%>
摘自:http://zhidao.baidu.com/question/25015915.html

Java连接MySQL数据库

感谢beansoft提供的《MyEclipse 6 Java 开发中文教程》,使我受益匪浅。
1、首先,当然要准备JDBC驱动啦
可以到mysql官方网站下载mysql-connector-java-5.1.6-bin.jar

2、

CREATE TABLE `student` (
  `id` 
int(11NOT NULL AUTO_INCREMENT,
  `username` 
varchar(200NOT NULL,
  `password` 
varchar(20NOT NULL,
  `age` 
int(11DEFAULT NULL,
  
PRIMARY KEY (`id`)
) ENGINE
=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=gbk;

 

/**
 * @(#)JDBCTest.java
 *
 *
 * 
@author keer2345
 * 
@version 1.00 2008/8/11
 
*/

import java.sql.*;

public class JDBCTest {

    public static void main(String[] args) {
        
// 1. 注册驱动
        try {
            Class.forName(
com.mysql.jdbc.Driver);
        } 
catch(ClassNotFoundException ex) {
            ex.printStackTrace();
        }
        
        
// 声明变量,使用,而后关闭
        Connection conn = null;        //数据库连接
        Statement stmt = null;         //数据库表达式
        ResultSet rs = null;             //结果集
        
        
try {
            
//2. 获取数据库的连接
            conn = DriverManager.getConnection
                (
jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=GBK,root,“”);
            
            
//3. 获取表达式
            stmt = conn.createStatement();
            
                
// 插入数据
            stmt.executeUpdate(insert into Student (username, password, age) values (‘张三’,’1234′,20));
            
            
//4. 执行SQL
            rs = stmt.executeQuery(select * from Student);
            
            
//5. 现实结果集里面的数据
            while(rs.next()) {
                System.out.println(
编号= + rs.getInt(1));
                System.out.println(
姓名= + rs.getString(username));
                System.out.println(
密码= + rs.getString(password));
                System.out.println(
年龄= + rs.getString(age));
                System.out.println(
—————);
            }
        }
        
catch (Exception ex) {
            ex.printStackTrace();
        }
        
finally {
            
try {
                
if(rs != null) {
                    rs.close();
                }
                
if(sm != null) {
                    sm.close();
                }
                
if(conn != null) {
                    conn.close();
                }
            } 
catch(Exception ex) {
                ex.printStackTrace();
            }
        }
    }
}

摘自:http://www.blogjava.net/keer2345/archive/2009/04/10/221380.html