关注我,每天都有优质技术文章推送,工作,学习累了的时候放松一下自己。

欢迎大家关注我的微信公众号:「醉翁猫咪」

什么是接口?

接口的基本语法

接口的基本语法(一)

使用interface定义

接口当中的方法都是抽象方法;

接口当中的方法都是public权限

接口中全是抽象函数,不能生成对象

interface USB{

 public void read();

 public void write();

}

class USBPhone implements USB{

//复写

 public void read(){

  System.out.println("USBPhone read");

 }

 public void write(){

  System.out.println("USBPhone write");

 }

}

class Test{

 public static void main(String args[]){

  USBPhone usbPhone = new USBPhone();

  USB usb = usbPhone;

  usb.read();

  usb.write();

 }

}

接口的基本语法(二)

实现接口使用implements关键字

一个类可以实现多个接口

一个接口可以继承多个接口

class Phone implements USB,WiFi{

 public void read(){

  System.out.println("USB read");

 }

 public void write(){

  System.out.println("USB write");

 }

 public void open(){

  System.out.println("USB open");

 }

 public void close(){

  System.out.println("USB close");

 }

}

interface USB{

 public void read();

 public void write();

}

interface WiFi{

 public void open();

 public void close();

}

class Test{

 public static void main(String args[]){

  Phone phone = new Phone();

  USB usb = phone;

  usb.read();

  usb.write();

 WiFi wifi = phone;

 wifi.open();

 wifi.close();

 }

}

接口可以继承多个接口

什么是接口的应用

为什么要用接口

工厂方法模式

class HPPrinter implements Printer{

 public void open(){

  System.out.println("HP open");

 }

 public void close(){

  System.out.println("HP close");

 }

 

 public void print(String s){

  System.out.println("HP print-->" + s);

 }

}

 

class CanonPrinter implements Printer{

 private void clean(){

  System.out.println("clean");

 }

 public void close(){

  this.clean();

  System.out.println("Canon close");

 }

  public void open(){

  System.out.println("Canon opern");

}

  

  public void print(String s){

   System.out.println("Canon print--->"+s);

  }

}

interface Printer{

 public void open();

 public void close();

 public void print(String s);

}

class Test{

 public static void main(String args[]){

  //根据用户的选择,生成相应的打印机对象

  //并且向上转型为Printer类型

  //Printer getPrinter(int flag)

  printer.open();

  printer.print("test");

  printer.close();

 }



打印机工厂

class PrinterFactory{

 public static Printer getPrinter(int flag){

   Printer printer = null;

  //int flag = 0;

  if(flag == 0){

   printer = new HPPrinter();

  }

  else(flag == 1){

   printer = new CanonPrinter();

  }

  return printer;

 }

}

class Test{

 public static void main(String args[]){

  //根据用户的选择,生成相应的打印机对象

  //并且向上转型为Printer类型

  //Printer getPrinter(int flag)

  int flag = 1;

  Printer printer = PrinterFactory.getPrinter(flag);

  printer.open();

  printer.print("test");

  printer.close();

  }

}                                                                                       

java当中的异常

什么是异常

异常的分类

try...catch...finally结构的使用方法

异常:中断了正常指令流的事件。

Throwable Exception Error

class TestCheck{

 public static void main(String args[]){

  //check exception

  Thread.sleep(1000);

 }

}

属于check异常

class Test{

 public static void main(String args[]){

  System.out.println(1);

  try{

  System.out.println(2);

   int i = 1 / 0;

  System.out.println(3);

  }

  catch(Exception e){

   e.printStackTrace();

   System.out.println(4);

  }

  finally{

   System.out.println("finally");

  }

  System.out.println(5);

  }

}

class TestCheck{

 public static void main(String args[]){

  try{

   Thread.sleep(1000);

  }

  catch(Exception e){

   e.printStackTrace();

  }

 }

}

30总结

程序员对Error无能为力,只能处理Exception

对异常的处理关系到系统的健壮性

使用try...catch...finally来处理可能出现异常的代码

throw的作用

throws的作用

class User{

 private int age;

 public void setAge(int age) throws Exception{

  if(age<0){

   RuntimeException e = new RuntimeException("年龄不能为负数");

   throw e;

  }

  this.age=age

 }

}

class Test{

 public static void main(String args[]){

  User user = new User();

  try{

   user.setAge(-20);

  }

  catch(Exception e){

   System.out.println(e);

  }

 }

}

throws Exception谁调用谁处理

32Java当中的IO

IO操作的目标

IO的分类方法

读取文件和写入文件的方法

IO操作的目标

从数据源当中读取数据,以及将数据写入到数据目的地当中。

IO的分类:

第一种分法:

输入流

输出流

第二种分类:

字节流

字符流

第三种分类:

节点流

处理流

IO当中的核心类

InputStream OutputStream FileInputStream FileOnputStream

字节流的核心类

InputStream OutputStream所有字节流的父类 抽象类,是不能生成对象的,子类可以生成对象。

核心类的核心方法

InputStream:   

int read(byte[] b,int off,int len)

OutputStream:

void write(byte[] b,int off,int len)

//第一步:导入类,

import java.io.*;

class Test{

 public static void main(String args[]){

    //声明输入流引用

    FileInputStream fis = null;

   //读取文件数据的 输入流,FileInputStream

   try{

     //生成代表输入流的对象

     fis = new FileInputStream("e:/src/from.text");

     //读取数据

     //生成一个字节数组

     byte [] buffer = new byte[100];

     //调用输入流对象的read方法,读取数据

     //0,代表偏移量,如果是5,那么就从第五个读取

     fis.read(buffer,0,buffer.length);

     for(int i = 0;i<buffer.length;i++){

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

     }

   }

   catch(Exception e){

    System.out.println(e);

   }

 }

}

字符表达

import java.io.*;

class Test{

 public static void main(String args[]){

    //声明输入流引用

    FileInputStream fis = null;

    //声明输出流的引用

   FileOutputStream fos = null;

   //读取文件数据的 输入流,FileInputStream

   try{

     //生成代表输入流的对象

     fis = new FileInputStream("e:/src/from.txt");

     //生成代表输出流的对象

     fos = new FileOutputStream("e:/src/to.txt");

     //读取数据

     //生成一个字节数组

     byte [] buffer = new byte[100];

     //调用输入流对象的read方法,读取数据

     //0,代表偏移量,如果是5,那么就从第五个读取

     int temp = fis.read(buffer,0,buffer.length);

     fos.write(buffer,0,temp);

    /* String s = new String(buffer);

     //调用一个String对象的trim方法,将会去除掉这个字符串的

     //首尾空格和空字符

     s = s.trim();

     System.out.println(s);*/

   }

   catch(Exception e){

    System.out.println(e);

   }

 }

}

32总结:IO系统的主要目标是为了对数据进行读写操作

数据的流向以JAVA程序为参照物

IO流可以有三种分类方法

read方法和write方法

33Java当中的IO(二)

大文件的读写方法

字符流的使用方法

import java.io.*;

class Test{

 public static void main(String args[]){

    //声明输入流引用

    FileInputStream fis = null;

    //声明输出流的引用

   FileOutputStream fos = null;

   //读取文件数据的 输入流,FileInputStream

   try{

     //生成代表输入流的对象

     fis = new FileInputStream("e:/src/from.txt");

     //生成代表输出流的对象

     fos = new FileOutputStream("e:/src/to.txt");

     //读取数据

     //生成一个字节数组

     byte [] buffer = new byte[1024];

     while(true){

       int temp = fis.read(buffer,0,buffer.length);

       if(temp == -1){

         break;

       }

       fos.write(buffer,0,temp);

     }

     

     //调用输入流对象的read方法,读取数据

     //0,代表偏移量,如果是5,那么就从第五个读取

    /* String s = new String(buffer);

     //调用一个String对象的trim方法,将会去除掉这个字符串的

     //首尾空格和空字符

     s = s.trim();

     System.out.println(s);*/

   }

   catch(Exception e){

    System.out.println(e);

   }

   finally{

     try{

     fis.close();

     fos.close(); 

    }

    catch(Exception e){

      System.out.println(e);

    }

   }

 }

}

33字符流:读写文件时,以字符为基础

字节输入流:Reader <--FileReader 

int read(char[] c,int off,int len)

字节输出流:Writer <--FileWriter

void write(char[] c,int off,int len)

import java.io.*;

public class TestChar{

 public static void main(String args[]){

   //字符数据流 FileReader

  FileReader fr = null;

  FileWriter fw = null;

  try{

    fr = new FileReader("e:/src/from.txt");

    fw = new FileWriter("e:;/src/to.txt");

    char[] buffer = new char[100];

    int temp = fr.read(buffer,0,buffer.length);

    fw.write(buffer,0,temp);

    /*for(int i = 0;i<buffer.length;i++){

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

   }*/

  }

  catch(Exception e){

   System.out.println(e);

  }

   finally{

     try{

    }

    catch(Exception e){

    System.out.println(e);

    }

  }

}

34

节点流和处理流

处理流使用实例

装饰者(Decorator)模式

节点流与处理流的关系

BufferedReader介绍

一行一行的读取

BufferedReader使用方法,生成BufferedReader对象的方法

BufferedReader in = new BufferedReader(new FileReader("foo.in"));

处理流,Reader,Writer以及他们所有的子类都属于字符流

BufferedReader属于字符流,处理流,然后呢,它又是处理流

全称:字符输入处理流

public String readLine()

  throws IOException

import java.io.*;

class Test{

 public static void main(String args[]){

  FileReader fileReader = null;

  BufferReader bufferReader = null;

  try{

    fileReader = new FileReader("e:/src/users.txt");

    bufferedReader = new BufferedReader(fileReader);

    String line = null;

    while(true){

     line = bufferedReader.readLine();

     if(line == null){

      break;

     }

     System.out.println(line); 

   }

    /*String line = bufferedReader.readLine();

    System.out.println(line);*/

  

  }

  catch(Exception e){

    System.out.println(e);

  }

  finally{

    try{

      bufferedReader.close();

      fileReader.close();

    }

    catch(Exception e){

     System.out.println(e);

    }

  }

 }

}

装饰者模式

worker.java

interface worker{

 public void doSomeWork();

}

class Plumber implements Worker{

 public void doSomeWork(){

  System.out.println("修水管");

 }

}

class Carpenter implemments Worker{

 public void doSomeWork(){

  System.out.println("修门窗");

 }

}

class AWorker implements Worker{

 private Worker worker;

 public AWorker(Worker worker){

  this.worker = worker;

 }

 public void doSomeWork(){

    System.out.println("你好");

    worker.doSomeWork();

  }

}

class Test01{

 public static void main(String args[]){

    //生成一个A公司水管工对象

     Plumber plumber = new Plumber();

     AWorker aWorker = new AWorker(plumber);

     aWorker.doSomeWork();

 

     Carpenter carpenter = new Carpenter();

     AWorker aWorker2 = new AWorker(capenter);

     aWorker2.doSomeWork();

  }

}

35内部类和匿名内部类

什么是内部类?

内部类的使用方法

匿名内部类的使用方法

class A{

  class B{

 

  }

}

如何生成内部类的对象?

class Test{

 public static void mian(String args[]){

  A a = new A();

  A.B b = a.new B();

 }

}

class A{

 int i;

 class B{

  int j;

  

  int funB(){

    int result = i + j;

    return result;

  }

 }

}

class Test{

 public static void main(String args[]){

  A a = new A();

  A.B b = a.new B();

  

  a.i = 3;

  b.j = 1;

  int result = b.funB();

  System.out.println(result); 

  }

}

class A{

 int i;

 class B{

  int j;

 

  int funB(){

   int result = A.this.i + this.j;

   return result;

  }

 }

}

匿名内部类

interface A{

 public void doSomething();

}

class B{

 public void fun(A a){

  System.out.println("B类的fun函数");

  a.doSomething();

  }

}

class AImpl implements A{

 public void doSomething(){

  System.out.println("doSomething");

 }

}

class Test{

 public static void main(String args[]){

  AImpl al = new AImpl();

  A a = al;

  B b = new B();

  b.fun(a);

  }

}

匿名内部类

class Test{

 public static void main(String args[]){

  //AImpl al = new AImpl();

  ///A a = al; 

  B b = new B();

  b.fun(new A(){

   public void doSomething(){

    System.out.println("匿名内部类");

   }

  });

 }

}

36Java当中的线程

1.进程和线程

2.多线程程序运行模式

3.定义线程的方法

多线程与多进程

多进程:

在操作系统中能(同时)运行多个任务(程序)

多线程:

在同一应用程序中多个顺序流(同时)执行

创建线程的方法

方法1:

定义一个线程类,它继承类Thread并重写其中的方法run();方法run()称为线程体;由于Java只支持单继承,用这种方法定义的类不能再继承其他类。

FirstThread.java

class FirstThread extends Thread{

 public void run(){

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

     System.out.println("FirstThread"+i);

    }

 }

}

class Test{

 public static void main(String args[]){

  //生成线程类的对象

  FirstThread ft = new FirstThread();

  //启动线程

  ft.start();

 

  //ft.run();  千万不能这样写

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

   System.out.println("main"+i);

   }

  }

}

37

实现线程的第二种方法

控制线程的常用函数

方法二:提供一个实现接口Runnable的类作为线程的目标对象,在初始化一个Thread类或者Thread子类的线程对象时,把目标对象传递给这个线程实例,由该目标对象提供线程体。

class RunnableImpl implements Runable{

 public void run(){

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

   System.out.println("Runnable-->"+i);

  }

 }

}

class Test{

 public static void main(String args[]){

  //生成一个Runnable接口实现类的对象

  //ri 代表的是线程体

  RunnableImpl ri = new RunnableImpl();

  //生成一个Thread对象,并将Runnable接口实现类的对象作为参数

  //传递给该Thread对象

  //代表的是线程

  Thread t = new Thread(ri);

  System.out.println(t.getPriority());

  //通知Thread对象,执行start方法

  t.start();

  }

}   

线程的简单控制方法

中断线程

Thread.sleep();

Thread.yield();//让出自己正在使用的CPU

设置线程的优先级

getPriority();

setPriority();

class RunnableImpl implements Runnable{

 public void run(){

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

   System.out.println("Runnable-->"+i);

   if(i==50){

     try{

     Thread.sleep(2000);

     }

     catch(Exception e){

       System.out.println(e);

     }

   }

  }

 }

}

class Test{

 public static void main(String args[]){

  //生成一个Runnable接口实现类的对象

  RunnableImpl ri = new RunnableImpl();

  //生成一个Thread对象,并将Runnable接口实现类的对象作为参数

  //传递给该Thread对象

  Thread t = new Thread(ri);

  //线程的优先级最大是10,最小是1,可以使用Thread所提供的静态常理来设置线程的优先级

  t.setPriority(Thread.MAX_PRIORITY);

  //t.setPriority(Thread.MIN_PRIORITY);

  //通知Thread对象,执行start方法

  t.start();

  System.out.println(t.getPriority());

  }

}

38

多线程数据安全

同步线程的方法

 

class Test{

 public static void main(String args[]){

  MyThread myThread = new MyThread();

  //生成两个Thread对象,但是这两个Thread对象共用同一个线程体

  

  Thread t1 = new Thread(myThread);

  Thread t2 = new Thread(myThread);

  

  //每一个线程都有名字,可以通过Thread对象的setName()方法设置线程名字,也可以使用getName方法获取线程的名字

  t1.setName("线程a");

  t2.setName("线程b");

 

  //分别启动两个线程

  t1.start();

  t2.start();

  }

}

class MyThread implements Runnable{

 int i = 100;

 public void run(){

  while(true){

  System.out.println(Thread.currentThread().getName()+i);

  i--;

  Thread.yield();

  if(i<0){

   break;

  }

 }

 }

}

//同步代码块

class MyThread implements Runnable{

 int i = 100;

 public void run(){

  while(true){

   synchronized(this){

    //Thread.currentThread();

    System.out.println(Thread.currentThread().getName()+i);

    i--;

    Thread.yield();

    if(i<0){

     break;

    }

   }

  }

 }

}

39深入同步语法

深入synchronized关键字

class Service{

 public void fun1(){

  synchronized(this){

   try{

    Thread.sleep(3*1000);

   }

   catch(Exception e){

    System.out.println(e);

   }

   System.out.println("fun1");

   }

  }

  

  public void fun2(){

    synchronized(this){

      System.out.println("fun2");

    }

  }

}

class MyThread1 implements Runnable{

 private Service service;

 

 public MyThread1(Service service){

  this.service = service;

 }

 public void run(){

  service.fun1();

 }

}

class MyThread2 implements Runnable{

 private Service service;

 

 public MyThread2(Service service){

  this.service = service;

 }

 public void run(){

  service.fun2();

 }

}

class Test{

 public static void main(String args[]){

  Service service = new Service();

  Thread t1 = new Thread(new MyThread1(service));

  Thread t2 = new Thread(new MyThread2(service));

  t1.start();

  t2.start();

  }

}

同步锁 锁住的是service

同步方法,同步代码块锁住this

class Service{

 public synchronized void fun1(){

  try{

   Thread.sleep(3*1000);

  }

  catch(Exception e){

   System.out.println(e);

  }

  System.out.println("fun1");

 }

 

  public void fun2(){

   synchronized(this){

    System.out.println("fun2");

   }

  }

}

40JAVA当中的数组

数组的类型

数组的定义方法

数组的操作方法

class Test{

 public static void main(String args[]){

  //数组的静态声明

  int arr [] = {5,2,7,8,9,0};

  arr[3] = 10;

  //System.out.println(arr[3]);

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

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

   }

  }

}

class Test{

 public static void main(String args[]){

  int arr[] = {2,4,6,7,8};

  System.out.println(arr.length);

  }

}

数组的动态声明

class Test{

 public static void main(String args[]){

 

 //动态声明

 int arr [] = new int [10];

 System.out.println("arr数组长度"+arr.length);

   for(int i = 0;i<arr.length;i++){

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

   }

 }

}

二维数组定义方法

class Test{

 public static void main(String args[]){

  //二维数组的定义方法,长度为3

   int arr [][] = {{1,2,3},{4,5,6},{7,8,9}};

   System.out.println(arr[1][1]);

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

    for(int j = 0; j < 3; j++){

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

    }

   }

 }

}

优化

class Test{

 public static void main(String args[]){

  //二维数组的定义方法,长度为3

   int arr [][] = {{1,2,3},{4,5,6},{7,8}};

   System.out.println(arr[1][1]);

   for(int i = 0; i < arr.length; i++){

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

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

    }

   }

 }

}

动态

class Test{

 public static void main(String args[]){

   //int arr [][] = {{1,2,3},{4,5,6},{7,8}};

   int arr [][] = new int[3][5]; 

   System.out.println(arr[1][1]);

   for(int i = 0; i < arr.length; i++){

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

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

    }

   }

 }

}

 

41类集框架

什么是类集框架

集合的种类

类集框架的基础结构

什么是类集框架

1.类集框架是一组类和接口;

2.位于java.util包当中;

3.主要用户存储和管理对象;

4.主要分为三大类---集合,列表和映射

什么是集合(Set)

集合中的对象不按特定的方式排序,并且没有重复对象;

对象是没有顺序的,集合是没有顺序的

什么是列表(List)

集合中对象按照索引位置排序,可以有重复的对象。

可以按照顺序取,也可以指定取。

什么是映射(Map)

集合中的每一个元素包含一个键对象和一个值对象,键不可以重复,值可以重复。

数据结构 键值对

类集框架主体结构

interface

Iterator Collection

ListIterator List Set Map

LinkeList ArrayList HashSet SortedSet HashMap SortedMap

LinkedHashSet TreeSet LinkedHashMap TreeMap

Comparable Comparator Collections Arrays

//arrayList默认10,可无限长,关于泛型

Test.java

import java.util.List;

import java.util.ArrayList;

public class Test{

 public static void main(String args[]){

  //ArrayList arrayList = new ArrayList();

  ArrayList<String> arrayList = new ArrayList<String>();

  arrayList.add("a");

  arrayList.add("b");

  arrayList.add("c");

  //String s = arrayList.get(1);

  //System.out.println(s);

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

    String s = arrayList.get(i);

    System.out.println(s);

   }

  }

}

优化

import java.util.List;
import java.util.ArrayList; public class Test{
public static void main(String args[]){
ArrayList<String> arrayList = new ArrayList<String>(); arrayList.add("a");
arrayList.add("b");
arrayList.add("c");
arrayList.add("d"); for(int i = 0; i < arrayList.size(); i++){
String s = arrayList.get(i);
}
}
}

import java.util.List;
import java.util.ArrayList; public class Test{
public static void main(String args[]){
ArrayList<String> arrayList = new ArrayList<String>();
arrayList.add("a");
arrayList.add("b");
arrayList.add("c");
arrayList.add("d"); arrayList.remove(1); for(int i = 0; i<arrayList.size();i++){
String s = arrayList.get(i);
System.out.println(s);
}
}
}

42

类集框架

集合 无序 不可重复

列表 有序 可重复

映射

Collection和Iterator接口

Set与HashSet的使用方法
Collection 接口(一)

boolean add(Object o) 向集合当中加入一个对象

void clear() 删除集合当中的所有对象

boolean isEmpty() 判断集合是否为空

remove(Object o) 从集合中删除一个对象的引用

int size() 返回集合中元素的数目

Set继承了Collection

import java.util.Set;
import java.util.HashSet; public class Test{
public static void main(String args[]){ //HashSet<String> hashSet = new HashSet<String>();
//Set<String> set = new HashSet<String>(); //别管就是转,方便
Set<String> set = new HashSet<String>();
set.add("a");
set.add("b");
set.add("c");
set.add("d"); int i = set.size();
System.out.println(i); }
}

不可以重复

import java.util.Set;
import java.util.HashSet; public class Test{
public static void main(String args[]){ //HashSet<String> hashSet = new HashSet<String>();
//Set<String> set = new HashSet<String>(); //别管就是转,方便
Set<String> set = new HashSet<String>(); boolean b1 = set.isEmpty();
System.out.println(b1); set.add("a");
set.add("b");
set.add("c");
set.add("d");
set.add("c"); boolean b2 = set.isEmpty();
System.out.println(b2); int i = set.size(); System.out.println("clear之前的长度"+i); set.clear(); int j = set.size(); System.out.println(j);
}
}

取数据,迭代  iterate器 (Iterator)

import java.util.Set;
import java.util.HashSet;
import java.util.Iterator;
public class Test{
public static void main(String args[]){
//HashSet<String> hashSet = new HashSet<String>();
//Set<String> set = hashSet;
//Iterator <-- Collection <-- Set <-- HashSet
//hasNext() next() Set<String> set = new HashSet<String>(); set.add("a");
set.add("b");
set.add("c");
set.add("d");
set.add("c"); //生成迭代器对象
//调用Set对象的Iterator方法,会生成一个迭代器对象,该对象用于遍历整个Set
Iterator<String> it = set.iterator();
boolean b1 = it.hasNext();
if(b1){
String s = it.next();
System.out.println(s);
}
boolean b2 = it.hasNext();
if(b2){
String s = it.next();
System.out.println(s);
}
}
}

迭代器的使用

it.hasNext();

还有没有下一个元素,如果这个游标后面有元素就返回true,否则,false;

it.next();

返回游标所指位置的下一个元素,取出,用hasNext()看有没有,next取

ok

import java.util.Set;
import java.util.HashSet;
import java.util.Iterator; public class Test{
public static void main(String args[]){
//HashSet<String> hashSet = new HashSet<String>();
//Set<String> set = hashSet;
//Iterator <-- Collection <-- Set <-- HashSet
// <--List <--ArrayList
//has Next() next()
Set<String> set = new HashSet<String>(); set.add("a");
set.add("b");
set.add("c");
set.add("d");
set.add("c"); Iterator<String> it = set.iterator(); while(it.hasNext()){
String s = it.next();
System.out.println(s); }
}
}

43Map

Map与HashMap的使用方法

JDK帮助文档

什么是映射(Map)

映射中的每一个元素包含一个键对象和一个值对象,键不可以重复,值可以重复。

Map存的是一对

import java.util.Map;
import java.util.HashMap; public class Test{
public static void main(String args[]){
HashMap<String,String> hasMap = new HashMap<String,String>(); Map<String,String> map = hasMap; map.put("1","a");
map.put("2","b");
map.put("3","c");
map.put("4","d"); int i = map.size(); System.out.println(i);
}
}

import java.util.Map;
import java.util.HashMap; public class Test{
public static void main(String args[]){
HashMap<String,String> hashMap = new HashMap<String,String>();
Map<String,String> map = hashMap; map.put("1","a");
map.put("2","b");
map.put("3","c");
map.put("4","d");
map.put("3","e"); String s = map.get("3");
System.out.println(s);
}
}

import java.util.Map;
import java.util.HashMap; public class Test{
public static void main(String args[]){
HashMap<String,String> hashMap = new HashMap<String,String>();
Map<String,String> map = hashMap; map.put("1","a");
map.put("2","b");
map.put("3","c");
map.put("4","d");
map.put("3","e"); int i = map.size();
System.out.println(i); String s = map.get("3");
System.out.println(s); }
}

从入门到熟悉!

坚决不放弃!

喜欢本文的朋友们

欢迎长按下图关注订阅号醉翁猫咪

收看更多精彩内容

Java基础教程--安卓入门教程(七)的更多相关文章

  1. TensorFlow 中文资源全集,官方网站,安装教程,入门教程,实战项目,学习路径。

    Awesome-TensorFlow-Chinese TensorFlow 中文资源全集,学习路径推荐: 官方网站,初步了解. 安装教程,安装之后跑起来. 入门教程,简单的模型学习和运行. 实战项目, ...

  2. TensorFlow 中文资源精选,官方网站,安装教程,入门教程,实战项目,学习路径。

    Awesome-TensorFlow-Chinese TensorFlow 中文资源全集,学习路径推荐: 官方网站,初步了解. 安装教程,安装之后跑起来. 入门教程,简单的模型学习和运行. 实战项目, ...

  3. java springboot整合zookeeper入门教程(增删改查)

    java springboot整合zookeeper增删改查入门教程 zookeeper的安装与集群搭建参考:https://www.cnblogs.com/zwcry/p/10272506.html ...

  4. 【ASP.NET 基础】WCF入门教程一(什么是WCF)?

    一.概述 Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是.NET框架的一部分.由 .NE ...

  5. 我的Android前生今世之缘-学习经验-安卓入门教程(六)

    关注我,每天都有优质技术文章推送,工作,学习累了的时候放松一下自己. 本篇文章同步微信公众号 欢迎大家关注我的微信公众号:「醉翁猫咪」 据我所知,网上教学资料一堆一堆的,那么还有很多人说,如何学习? ...

  6. Java基础组件快速入门

    最近需要上线很多新的JAVA项目,然而很多JAVA的相关库都不太熟悉,项目实现起来遇到了不小阻力,熬了好几天夜.现在手头的工作基本完成了,因此打算好好来归纳下java的相关工具库,将来需要借助你们,好 ...

  7. Java基础1,入门基础知识

    本文知识点(目录): 1.java简介    2.环境的搭建    3.关键字    4.标识符    5.注释    6.常量    7.进制的转换    8.变量    9.数据类型的转换    ...

  8. JVM,Java虚拟机基础知识新手入门教程(超级通熟易懂)

    作者:请叫我红领巾,转载请注明出处http://www.cnblogs.com/xxzhuang/p/7453746.html,简书地址:http://www.jianshu.com/p/b963b3 ...

  9. 零基础大数据入门教程:Java调用阿里云短信通道服务

    这里我们使用SpringBoot 来调用阿里通信的服务. 阿里通信,双11.收到短信,日发送达6亿条.保障力度非常高. 使用的步骤: 1.1. 第一步:需要开通账户 1.2. 第二步:阅读接口文档 1 ...

随机推荐

  1. 复杂sql语句之单字段分类count计数和多字段count计数

    SELECT AF_DEPARTMENT, dept.FULLNAME, SUM(CASE AF_CLASSIFY WHEN THEN ELSE END) AS 'o_standard', (COUN ...

  2. 30个关于Shell脚本的经典案例(中)

    本文目录 11.iptables自动屏蔽访问网站频繁的IP 12.判断用户输入的是否为IP地址 13.判断用户输入的是否为数字 14.给定目录找出包含关键字的文件 15.监控目录,将新创建的文件名追加 ...

  3. Laravel 5.5 发布,ThinkSNS+ 升级及状况分享

    升级场景 ThinkSNS+ 一直依赖,都是保留 Laravel 的 commit 记录的前提下,进行开发,为了追随 Laravel 的升级,我们在本地的仓库中新建了一个分支,如果 laravel 更 ...

  4. 全选全不选案例table表格

    全选全不选案例table表格 案例一纯table表格 <table class="table table-bordered"> <thead class=&quo ...

  5. day 03 作业 预科

    目录 作业 1.简述变量的组成 2.简述变量名的命名规范 3.简述注释的作用 4.使用turtle库构造一幅图,贴在markdown文档中 作业 1.简述变量的组成 变量由变量名.赋值符号.变量值所组 ...

  6. 【Docker】docker安装GitLab

    一.下载镜像 docker pull gitlab/gitlab-ce 二.运行GitLab容器 1.生成启动文件 - start.sh 使用docker命令运行容器,注意修改hostname为自己喜 ...

  7. SQLAlchemy的应用创建

    1.首先创建app文件夹 同django 创建app 一样 创建文件 在创建的views中写入两个蓝图函数为了操作数据库的增删改查 acc.py from flask import Blueprint ...

  8. Linux入侵类问题排查思路

    深入分析,查找入侵原因 一.检查隐藏帐户及弱口令 检查服务器系统及应用帐户是否存在 弱口令: 检查说明:检查管理员帐户.数据库帐户.MySQL 帐户.tomcat 帐户.网站后台管理员帐户等密码设置是 ...

  9. VMware下安装的CentOS7.5,设置成静态IP后ping不通外网

    网上很多都说用下面的方法即可解决 在CentOS中 ping www.baidu.com 无法ping通,可能原因是DNS没配置好 方法一: 修改vim /etc/resolv.conf 增加如下内容 ...

  10. Winform异常处理之ThreadException、unhandledException及多线程异常处理

    异常处理之ThreadException.unhandledException及多线程异常处理 一:ThreadException和unhandledException的区别 处理未捕获的异常是每个应 ...