美文网首页
认识java(三)

认识java(三)

作者: Cipolee | 来源:发表于2019-03-02 22:06 被阅读0次

原创

第四章

java数组具有length属性(只读)

数组①数组的定义与为数组元素分配空间、赋值操作分开进行动态初始化

静态初始化:定义数组的同时给数组分配空间并赋初值


String[ ] str= new String[3];

for(inti=0;i<str.length;i++){

   System.out.println(str[i]);

}

ATTENTION

System.out.println(str[1].length());空指针错误
String[]数组长度使用length;而String[i]使用length();
String就是字符串,而String[]才是字符串数组
不规则数组:不同行具有不同长度的数组

多维数组的遍历

int[ ][ ] square =

{{3,5,7},{1,4,9},{2,5,6}};

for(inti=0;i<square.length;i++){

  for(int j=0;j<square[i].length;j++){

  System.out.println(square[i][j]);

  }

}

java中数组的copy System.arraycopy(from,fromIndex,to,toIndex,count);

fromIndex和toIndex是维度信息即列顺序-1;


第五章

关于java中的String.

虽然String是字符常量,但是归根到底其是一个引用,只是通过引用转递变化如

String s;
s=s+“hallo";

而其他的东西不能改变s如s.trim();toUpperCase();函数不改变其本身

toUpperCase()和toLowerCase()方法返回一个新的String对象。如果原字符串本身就是大写形式或小写形式,那么返回原始对象。

因为当需要改变字符串的内容时,String类的方法会返回一个新的String对象。同时,如果内容没有发生改变,String的方法只是返回指向原有对象的引用。

基本值初始化后不能改变,不能修改,为什么要有Wrapper类:为了将基本类型转换为对象类型。

/*java枚举:(public not protected 、private、abstract修饰符)enum名字 {变量1~n;}

枚举类型不能通过new创建实例对象

访问方法1:通过枚举类型名访问枚举常量

s = SEASON.春季;(枚举类型变量s,其值为“春季”)

访问方法2:通过枚举变量访问枚举常量(使用方法:类似于类的静态成员)

  • name():返回此枚举常量的名称

-toString():返回此枚举常量的名称

values():获得该枚举类型的所有枚举变量

–ordinal():获取该枚举变量的编号

§enum不能继承类(包括继承enum),只能实现接口,类无此限制,enum更像interface。最好不要使用*/


第六章:

l容器类:Java类库中提供的用于管理对象集的类

功能:•持有、操作对象•自动完成容量的变化

image

collection中方法

  • int size();

  • boolean isEmpty();

  • boolean contains(Object o);

  • Iterator iterator();

  • Object[] toArray();

  • boolean add(E o);

  • boolean remove(Object o);

  • boolean containsAll(Collection<?>c);

  • boolean addAll(Collection<?extends E> c);

  • boolean removeAll(Collection<?>c);

  • boolean retainAll(Collection<?>c);

  • void clear();

  • boolean equals(Object o);

{1.}collection中的容器能够直接输出,按照toString()方法。

{2.}Collection接口的List子接口通过ArrayList或者LinkedList实现。

{3.}LinkedList是双向链表:插入快访问慢,注意这些都是接口中的方法没有被实现,所以list前面都是接口

如果想要使用一个接口则可以使用该接口的实现类完成【接口】
接口对象 =new ArrayList();

package terminal_review_test;

import java.util.*;

public class jiekou_test {

public static void main(String[] args)

{

List list = new LinkedList();

for(int i=0;i<=5;i++){

list.add("a"+i);

}

System.out.println(list);

list.add(3,"b");

System.out.println(list);

list.set(6,"c");

System.out.println(list);

System.out.println((String)list.get(2));//进入容器时 

System.out.println(list.indexOf("a3"));

System.out.println(list.set(6,"f"));//实参数,实际改变参数

list.remove(1);

System.out.println(list);

}

}

collection中

泛型List<String> list= new LinkedList<String>();容器中只能存String

System.out.println(list.get(2));便无需转换String

容器内加入的是对象的引用

Vector是List接口的实现类

线程安全的①Vector是线程安全的,是可以同步的,运行效率低;

  • offer():(入队)如果可能,将指定的元素插入此队列。

  • peek(),element():在不移除的情况下返回队头。peek方法在队列为空时返回null,element方法在队列为空时抛出异常。

poll(),remove():移除并返回队头(出队)。poll方法在队列为空时返回null,remove方法在队头为空时抛出异常,其实现类主要是LinkedList故

Queue queue=new LinkedList();

Set

接口的实现类TreeSet:保存次序的Set,

底层为二叉树结构。使用它可以从Set中提取有序的序列。

看一带hash的题


Set s = new HashSet();

s.add("Java");

s.add("C#");

s.add(new

Student(1,"Tom",70));

s.add("Java");

s.add(new String("C#"));

s.add(new Student(1,"Tom",70));

System.out.println(s.size());

System.out.println(s);未实现equals之前是4

TreeSet只能接受实现了Comparable接口的类的对象

hashmap可以使用null而hashtable不可以使用null

(Collection都有iterator()方法返回Iterator接口的对象)

Iterator接口:Iterator中方法boolean hasNext( )–object next()–void remove( )

不可以使用迭代器删除for(Iterator i= c.iterator();i.hasNext();){  Student s = (Student)i.next(); if(s.getNo()>2)  /*i.remove();应使用c.remove(s);

list接口都可以实现双向迭代

实用类Collections提供了基于List容器的排序方式静态方法

void sort(List);//对List容器内元素排序

void shuffle(List);//对List容器内的对象进行随机排序

void reverse(List);//对List容器内的对象进行逆序排列

void copy(List dest,Listsrc);

//把src中List容器内容拷贝到destList容器

intbinarySearch(List,Object);

//对顺序的List容器,用折半查找方法查找指定对象

 }

Arrays实用类

实现了对数组元素的排序、填充、转换为列表或字符串形式、增强的检索和深度比较等功能。

如Interger[]a={3,34,53,22,34,5};

Arrays.sort(a);

如果要进行大量随机访问,使用ArrayList;如果要经常从表中间插入或删除元素,则使用LinkedList。

各种Queue和栈的行为,都使用LinkedList代替

Map是一种将对象与对象相关联的设计。HashMap设计用来进行快速访问,而TreeMap保持“键”始终处于排序状态,所以没有HashMap快。LinkedHashMap保持元素插入的状态,但是也是通过散列提供了快速访问的能力。

Set不接受重复元素。HashSet提供最快的查询速度。TreeSet保持元素处于排序状态。LinkedHashSet以插入顺序保存元素。


第七章 异常

异常:运行期出现的错误

异常的抛出(throw):运行时出现异常事件,生成对应的异常对象,该对象封装了异常的信息并被提交给Java运行时系统

§方法何时用throws声明要抛出的异常

–调用了一个抛出已检查异常的方法,方法中没有处理异常

–程序运行时发现错误,利用throw抛出一个异常,方法中没有处理异常

§若一个方法抛出多个已检查异常,则在方法定义头部列出所有的异常,每个异常用“,”分开。

–void method1() throws Exception1,Exception2,...

重写方法需要抛出与原方法所抛出异常类型一致(相同的类或子类)的异常或不抛出异常

–不使用异常,程序的相应位置要对可能出现的各种异常情况处理,导致程序可能存在大量的选择分支结构,使程序的结构变的复杂;

–采用异常处理,可简化上述处理过程,使程序具有统一的处理模式,可以将各种异常情况集中统一处理。


第八章

•RandomAccessFile

–是一个十分有用的类,因为很多时候我们并不想覆盖掉文件,而是从某个位置开始进行输入。

可以从一个特定的数据源读取数据

r只读

rw读写若不存在则创建

相关文章

  • 认识java(三)

    原创 第四章 java数组具有length属性(只读) 数组①数组的定义与为数组元素分配空间、赋值操作分开进行动态...

  • JavaSE笔记(一)基本语法

    认识Java关键字 认识Java标识符 如何命名Java变量 优秀攻城师的习惯: Java中的数据类型 Java中...

  • 认识Java

    一. Java简介 1.定义:Java 是一门面向对象的计算机编程语言。 2.优势:java程序可以在任何实现了J...

  • 认识java

    什么是java java是一种编程语言 计算机=硬件+软件 硬件:cpu,内存,硬盘。。。 软件:操作系统,应用软...

  • 认识Java

    认识Java Java 是由Sun Microsystems公司于1995年5月推出的高级程序设计语言。 Java...

  • 认识JAVA

    Java语言版本: Java SE:标准版Java EE:企业版Java ME:微缩版 Java语言的特点: 跨平...

  • 认识java

    高级语言:fortran语言,C语言,python语言,java语言等 简介 Java的最初名字叫oak因被别人抢...

  • 认识Java三大特征-继承

    好开心的说~第一次在简书上写博客。大家多多支持哦(Laban)~ java是面向对象的编程语言 在java中为了提...

  • java 多线程,高并发编程之一 JMM

    JMM 即 java memery model ,java 内存模型,再谈java内存模型之前,先认识下Java内...

  • Java的开发工具及环境搭建

    一、认识JRE和JDK:JRE:Java Runtime Enviroment ,即java运行环境,包括Java...

网友评论

      本文标题:认识java(三)

      本文链接:https://www.haomeiwen.com/subject/wekyuqtx.html