学习Java第一天

学习Java第一天1 下载jdk从Oracle官网下载2 下载eclipsehttp://www.eclipse.org3 标识符建议初学者在定义标识符时还应该遵

大家好,欢迎来到IT知识分享网。

1 下载jdk

从Oracle官网下载

2 下载eclipse

http://www.eclipse.org

3 标识符

建议初学者在定义标识符时还应该遵循以下规则。

1)包名所有字母一律小写。例如:cn.itcast.test。

2)类名和接口名每个单词的首字母都要大写。例如:ArrayList、Iterator。

3)常量名所有字母都大写,单词之间用下划线连接。例如:DAY_OF_MONTH。

4)变量名和方法名的第一个单词首字母小写,从第2个单词开始,每个单词首字母大写。例如:lineNumber、getLineNumber。

5)在程序中,应该尽量使用有意义的英文单词来定义标识符,使得程序便于阅读。例如使用userName表示用户名,password表示密码。

4 关键字

abstract    continue    for      new      switchassert     default    goto      package    synchronizedboolean    do       if       private    thisbreak     double     implements   protected   throwbyte      else      import     public     throwscase      enum      instanceof   return     transientcatch     extends    int      short     trychar      final     interface   static     voidclass     finally    long      strictfp    volatileconst     float     native     super     while

5 整数

在程序中为了标明不同的进制,数据都有特定的标识,八进制必须以0开头,如0711、0123;十六进制必须以0x或0X开头,如:0xaf3、0Xff;整数以十进制表示时,第一位不能是0,0本身除外。例如十进制的127,用二进制表示为0b或者0B,用八进制表示为0177,用十六进制表示为0x7F或者0X7F。

6 字符串常量用“”括起来,字符用”括起来。

7 bool常量 true false

8 null

9 迭代器删除元素

如果需要在集合的迭代期间对集合中的元素进行删除,可以使用迭代器本身的删除方法,将文件6-6中第13行代码替换成it.remove()即可解决这个问题,代码如下。

if (“Annie”.equals(obj)) {it.remove();}

10 访问控制

• Private(类访问级别):如果类的成员被private访问控制符来修饰,则这个成员只能被该类的其他成员访问,其他类无法直接访问。类的良好封装就是通过private关键字来实现的。

• Default(包访问级别):如果一个类或者类的成员不使用任何访问控制符修饰,则称它为默认访问控制级别,这个类或者类的成员只能被本包中的其他类访问。

• protected(子类访问级别):如果一个类的成员被protected访问控制符修饰,那么这个成员既能被同一包下的其他类访问,也能被不同包下该类的子类访问。

• Public(公共访问级别):这是一个最宽松的访问控制级别,如果一个类或者类的成员被public访问控制符修饰,那么这个类或者类的成员能被所有的类访问,不管访问类与被访问类是否在同一个包中。

11 ArrayList,LinkedList

ArrayList集合在查询元素时速度很快,但在增删元素时效率较低。为了克服这种局限性,可以使用List接口的另一个实现类LinkedList。该集合内部维护了一个双向循环链表,链表中的每一个元素都使用引用的方式来记住它的前一个元素和后一个元素,从而可以将所有的元素彼此连接起来。当插入一个新元素时,只需要修改元素之间的这种引用关系即可,删除一个节点也是如此。正因为这样的存储结构,LinkedList集合对于元素的增删操作具有很高的效率

12 HashSet

为了保证 HashSet 正常工作,要求在存入对象时,重写Object类中的hashCode()和equals()方法。

13 Map

Map的put(Object key,Object value)方法向集合中加入3个元素,然后通过Map的get(Object key)方法获取与键对应的值。

第一种遍历Map的方式。首先调用Map对象的KeySet()方法,获得存储Map中所有键的Set集合,然后通过Iterator迭代Set集合的每一个元素,即每一个键,最后通过调用get(String key)方法,根据键获取对应的值。

Map map = new HashMap();

map.put(“1”, “Jack”);

map.put(“2”, “Jack2”);

map.put(“3”, “Jack3”);

Set keySet = map.keySet();    // 获取键的集合    

Iterator it = keySet.iterator(); // 迭代键的集合10    

while (it.hasNext()) {      

Object key = it.next();

Object value = map.get(key); // 获取每个键所对应的值      

System.out.println(key + “:” + value);

}

Map 集合的另外一种遍历方式是先获取集合中的所有的映射关系,然后从映射关系中取出键和值。

Set entrySet = map.entrySet();    

Iterator it = entrySet.iterator();      // 获取Iterator对象10    

while (it.hasNext()) {

Map.Entry entry = (Map.Entry) (it.next());// 获取集合中键值对映射      

Object key = entry.getKey();       // 获取Entry中的键      

Object value = entry.getValue();     // 获取Entry中的值      

}

13 泛型

Java中引入了“参数化类型(parameterized type)”这个概念,即泛型。它可以限定方法操作的数据类型,在定义集合类时,使用“<参数化类型>”的方式指定该类中方法操作的数据类型,具体格式如下。

ArrayList<参数化类型> list = new ArrayList<参数化类型>();

14字节流使用缓冲区读取文件提高效率

// 创建一个字节输入流,用于读取当前目录下source文件夹中的mp3文件    

InputStream in = new FileInputStream(“source\\五环之歌.mp3”);    

// 创建一个文件字节输出流,用于将读取的数据写入当前目录的target文件中    

OutputStream out = new FileOutputStream(“target\\五环之歌.mp3”);

// 以下是用缓冲区读写文件    

byte[] buff = new byte[1024]; // 定义一个字节数组,作为缓冲区    

// 定义一个int类型的变量len记住读取读入缓冲区的字节数    

int len;  

while ((len = in.read(buff)) != -1) { // 判断是否读到文件末尾      

out.write(buff, 0, len); // 从第一个字节开始,向文件写入len个字节    

}

15字符流使用缓冲区

字符流同样提供了带缓冲区的包装流,分别是BufferedReader和BufferedWriter。其中,BufferedReader用于对字符输入流进行包装,BufferedWriter 用于对字符输出流进行包装。需要注意的是,在 BufferedReader 中有一个重要的方法readLine(),该方法用于一次读取一行文本。

// 创建一个BufferedReader缓冲对象     

BufferedReader br = new BufferedReader(reader);     

FileWriter writer = new FileWriter(“des.txt”);     // 创建一个BufferdWriter缓冲区对象

BufferedWriter bw = new BufferedWriter(writer);    

String str;    

while ((str = br.readLine()) != null) {      

bw.write(str);      

bw.newLine();    

}    

br.close();    

bw.close();

16 JDBC常用API

Driver接口是所有JDBC驱动程序必须实现的接口,该接口专门提供给数据库厂商使用。需要注意的是,在编写 JDBC 程序时,必须要把所使用的数据库驱动程序或类库加载到项目的classpath中(这里指MySQL驱动JAR包)。

DriverManager类用于加载JDBC驱动并且创建与数据库的连接。

Connection接口代表Java程序和数据库的连接,只有获得该连接对象后,才能访问数据库,并操作数据表。在Connection接口中定义了一系列方法,其常用方法如表9-2所示。

学习Java第一天

Statement接口用于执行静态的SQL语句,并返回一个结果对象。Statement接口对象可以通过Connection实例的createStatement()方法获得,该对象会把静态的SQL语句发送到数据库中编译执行,然后返回数据库的处理结果。

PreparedStatement是Statement的子接口,用于执行预编译的SQL语句。该接口扩展了带有参数SQL语句的执行操作,应用该接口中的SQL语句可以使用占位符“?”来代替其参数,然后通过setXxx()方法为SQL语句的参数赋值

ResultSet接口用于保存JDBC执行查询时返回的结果集,该结果集封装在一个逻辑表格中。在ResultSet接口内部有一个指向表格数据行的游标(或指针)。ResultSet对象初始化时,游标在表格的第一行之前,调用 next()方法可将游标移动到下一行。如果下一行没有数据,则返回false。在应用程序中经常使用next()方法作为while循环的条件来迭代ResultSet结果集

举例如下

Class.forName(“com.mysql.cj.jdbc.Driver”);

String url = “jdbc:mysql://localhost:3306/world”;

String username = “root”;

String password = “caicai123”;

// 创建应用程序与数据库连接的Connection对象      

Connection conn = DriverManager.getConnection(url, username,password);

String sql = “INSERT INTO city(name,countrycode,district,population)”+ “VALUES(?,?,?,?)”;

// 1.创建执行SQL语句的PreparedStatement对象19      

preStmt = conn.prepareStatement(sql);

// 2.为SQL语句中的参数赋值21      

preStmt.setString(1, “qufu”);

preStmt.setString(2, “CHN”);

preStmt.setString(3, “wucun”);

preStmt.setInt(4, 12000);

// 3.执行SQL26      

int rows = preStmt.executeUpdate();

System.out.println(“行数_” + rows);

conn = DBUtils.getConn();

// 3.通过Connection对象获取Statement对象      

stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

// 4.使用Statement执行SQL语句。      

String sql = “select * from city”;

rs = stmt.executeQuery(sql);

// 5. 操作ResultSet结果集      

System.out.println(“id |  name  |  countrycode”+ “|  district    |  population”);

while (rs.next()) {

int id = rs.getInt(“id”); // 通过列名获取指定字段的值26        

String name = rs.getString(“name”);

String countrycode = rs.getString(“countrycode”);

String district = rs.getString(“district”);

int population = rs.getInt(“population”);

System.out.println(id + “  |  ” + name + “|  ” +countrycode +”  |  ” + district + “ |  ” + population);

}

rs.previous();

System.out.println(rs.getString(“name”));

rs.absolute(1);

System.out.println(rs.getString(“name”));

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/58645.html

(0)
上一篇 2024-07-04 19:00
下一篇 2024-07-04 20:45

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信