Java2EE练习及面试题_chapter11Java集合_上

简介: Java2EE练习及面试题_chapter11Java集合_上

题目01

list测试
package com.jerry.java;
import org.junit.Test;
import java.util.*;
/**
 * @author jerry_jy
 * @create 2022-10-05 16:50
 */
public class CollectionTest {
    @Test
    public void test1() {
        System.out.println("========ArrayList=======");
        Collection arrayList = new ArrayList();
        arrayList.add("AA");
        arrayList.add("BB");
        arrayList.add(123);
        arrayList.add(new Date());
        System.out.println(arrayList.size());//4
        System.out.println("========LinkedList=========");
        Collection linkedList = new LinkedList();
        linkedList.add("CC");
        linkedList.add(456);
        System.out.println(linkedList.size());//2
        linkedList.addAll(linkedList);
        System.out.println(linkedList.size());//6
        System.out.println(linkedList);//[AA, BB, 123, Wed Oct 05 16:58:36 CST 2022, CC, 456]
        linkedList.clear();
        System.out.println(linkedList.isEmpty());//true
        System.out.println("=======================");
        Collection vector = new Vector();
        vector.add("DD");
        vector.add(789);
        System.out.println(vector.size());//2
        System.out.println(vector);//[DD, 789]
        arrayList.addAll(vector);
        System.out.println(arrayList);//[AA, BB, 123, Wed Oct 05 17:18:36 CST 2022, DD, 789]
        System.out.println(arrayList.remove(789));//true
        System.out.println(arrayList);//[AA, BB, 123, Wed Oct 05 17:26:58 CST 2022, DD]
        Object[] objects = arrayList.toArray();
        for (int i = 0; i < objects.length; i++) {
            System.out.println(objects[i]);
        }
        System.out.println(vector.contains(789));//true
        System.out.println(vector.contains(678));//false
        for (Object o : vector) {
            System.out.println(o);
        }
        System.out.println("=========iterator==========");
        Iterator iterator = vector.iterator();
        while (iterator.hasNext()) {
            Object o = iterator.next();
            if (o.equals(789)) {
                iterator.remove();
            }
            System.out.println(iterator.next());//DD 789
        }
        vector.clear();
        System.out.println(vector.size());//0
        System.out.println(vector.isEmpty());//true
        for (Object o : arrayList) {
        }
    }
    @Test
    public void test2() {
        List list = new ArrayList();
        list.add(1);
        list.add(2);
        list.add(3);
        updateList(list);
        System.out.println(list);//[1, 2]
    }
    private static void updateList(List list) {
        list.remove(2);
    }
    @Test
    public void test3() {
        LinkedList linkedList = new LinkedList();
        linkedList.add("AA");
        linkedList.add("BB");
        linkedList.add("CC");
        linkedList.addFirst("first");
        linkedList.addLast("last");
        System.out.println(linkedList);//[first, AA, BB, CC, last]
        System.out.println(linkedList.getFirst());//first
        System.out.println(linkedList.getLast());//last
        linkedList.removeFirst();
        linkedList.removeLast();
        System.out.println(linkedList);//[AA, BB, CC]
    }
}    

题目02

//在List内去除重复数字值,要求尽量简单
    @Test
    public void test4() {
        List list = new ArrayList();
        list.add(new Integer(1));
        list.add(new Integer(2));
        list.add(new Integer(2));
        list.add(new Integer(4));
        list.add(new Integer(4));
        List list2 = duplicateList(list);
        for (Object integer : list2) {
            System.out.println(integer);
        }
    }
    public static List duplicateList(List list) {
        //在List内去除重复数字值,要求尽量简单
        HashSet set = new HashSet();
        set.addAll(list);//把List内含有重复数字值的集合,添加到HashSet里,自动就去重了
        return new ArrayList(set);//把新的集合set传到ArrayList里面
    }

题目03

map集合测试
    @Test
    public void test5() {
        HashMap hashMap = new HashMap();
        hashMap.put(001, "AA");
        hashMap.put(002, "BB");
        hashMap.put(003, "CC");
        System.out.println(hashMap.size());//3
        System.out.println("map的所有的value:");
        Collection values = hashMap.values();
        Iterator iterator = values.iterator();
        while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }
        System.out.println("map的所有key:");
        Set keys = hashMap.keySet();
        for (Object key : keys) {
            System.out.println(key + "->" + hashMap.get(key));
        }
        System.out.println("map所有的映射关系:");
        // 映射关系的类型是Map.Entry类型,它是Map接口的内部接口
        Set mappings = hashMap.entrySet();
        for (Object mapping : mappings) {
            Map.Entry entry = (Map.Entry) mapping;
            System.out.println("key是:" + entry.getKey() + ",value是:" + entry.getValue());
        }
    }

题目04

/*
请从键盘随机输入10个整数保存到List中,并按倒序、从大到小的顺序显示出来
 */
package com.jerry.exer;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
/**
 * @author jerry_jy
 * @create 2022-10-06 10:28
 */
public class Exer1 {
    /*
    请从键盘随机输入10个整数保存到List中,并按倒序、从大到小的顺序显示出来
     */
    public static void main(String[] args) {
        ArrayList list = new ArrayList();
        System.out.println("请从键盘随机输入10个整数:");
        for (int i = 0; i < 10; i++) {
            Scanner scanner = new Scanner(System.in);
            int num = scanner.nextInt();
            list.add(num);
        }
        System.out.println("原始的list:" + list);
        Collections.reverse(list);
        System.out.println("反转后的:" + list);
    }
}

题目05

/*
请把学生名与考试分数录入到集合中,并按分数显示前三名成绩学员的名字。
TreeSet(Student(name,score,id))
 */
package com.jerry.exer;
import java.util.TreeSet;
/**
 * @author jerry_jy
 * @create 2022-10-06 16:15
 */
public class Exer2 {
    public static void main(String[] args) {
        TreeSet<Student> set = new TreeSet<>();
        set.add(new Student("Jerry", 99, 1001));
        set.add(new Student("Tom", 76, 1002));
        set.add(new Student("Lily", 86, 1003));
        set.add(new Student("Luke", 59, 1004));
        set.add(new Student("Cherry", 100, 1005));
        set.add(new Student("Jim", 98, 1006));
//        System.out.println(set.toString());
        Object[] objects = set.toArray();
        for (int i = 0; i < 3; i++) {
            System.out.println(objects[i]);
        }
    }
}
class Student implements Comparable{
    private String name;
    private double score;
    private int id;
    public Student() {
    }
    public Student(String name, double score, int id) {
        this.name = name;
        this.score = score;
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public double getScore() {
        return score;
    }
    public void setScore(double score) {
        this.score = score;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", score=" + score +
                ", id=" + id +
                '}';
    }
    @Override
    public int compareTo(Object o) {
        if (o != null){
            Student s = (Student) o;
            return -Double.compare(this.getScore(), s.getScore());
        }
        throw new RuntimeException("传入的数据类型不一致!");
    }
}

题目06

/*
定义一个Collection接口类型的变量,引用一个Set集合的实现类,实现添加单个元素,添加另一个集合,删除元素,判断集合中是否包含一个元素,判断是否为空,清除集合,返回集合里元素的个数等常用操作。
 */
package com.jerry.exer1;
import java.util.Collections;
import java.util.HashSet;
/**
 * @author jerry_jy
 * @create 2022-10-06 16:54
 */
public class Exer1 {
    public static void main(String[] args) {
        HashSet set = new HashSet();
        System.out.println("======添加单个元素======");
        set.add("AA");
        set.add("BB");
        System.out.println(set);//[AA, BB]
        HashSet set1 = new HashSet();
        set1.add("CC");
        set1.add("DD");
        System.out.println("=======添加另一个集合========");
        set.addAll(set1);
        System.out.println(set);//[AA, BB, CC, DD]
        System.out.println("=======删除元素========");
        set.remove("DD");
        System.out.println(set);//[AA, BB, CC]
        System.out.println("=======判断集合中是否包含一个元素========");
        System.out.println(set.contains("CC"));//true
        System.out.println("=======判断是否为空========");
        System.out.println(set.isEmpty());//false
        System.out.println("=======返回集合里元素的个数========");
        System.out.println(set.size());//3
        System.out.println("=======清除集合========");
        set.clear();
        System.out.println(set.isEmpty());//true
    }
}

题目07

/*创建Set接口的实现类,添加10个以上的元素,通过Iterator遍历此集合元素。*/
package com.jerry.exer1;
import java.util.HashSet;
import java.util.Iterator;
/**
 * @author jerry_jy
 * @create 2022-10-06 17:21
 */
public class Exer2 {
    /*创建Set接口的实现类,添加10个以上的元素,通过Iterator遍历此集合元素。*/
    public static void main(String[] args) {
        HashSet set = new HashSet();
        //添加10个以上的元素
        for (int i = 0; i < 10; i++) {
            set.add(i);
        }
        //通过Iterator遍历此集合元素
        Iterator iterator = set.iterator();
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }
    }
}

题目08

/*创建Set接口的实现类,添加10个以上的元素,通过foreach遍历此集合元素。*/
package com.jerry.exer1;
import java.util.HashSet;
/**
 * @author jerry_jy
 * @create 2022-10-06 17:25
 */
public class Exer3 {
    /*创建Set接口的实现类,添加10个以上的元素,通过foreach遍历此集合元素。*/
    public static void main(String[] args) {
        HashSet set = new HashSet();
        //添加10个以上的元素
        for (int i = 0; i < 10; i++) {
            set.add(i);
        }
        //通过foreach遍历此集合元素
        for (Object o : set) {
            System.out.println(o);
        }
    }
}

题目09

/*创建Set接口的实现类,添加10个以上的元素,要求能够排序。*/
package com.jerry.exer1;
import java.util.Collections;
import java.util.HashSet;
/**
 * @author jerry_jy
 * @create 2022-10-06 17:27
 */
public class Exer4 {
    /*创建Set接口的实现类,添加10个以上的元素,要求能够排序。*/
    public static void main(String[] args) {
        HashSet set = new HashSet();
        //添加10个以上的元素
        for (int i = 0; i < 10; i++) {
            set.add(i);
        }
    }
}

题目10

/*创建Car类,包含name,price属性,构造器等方法,创建测试类,在main方法中创建Set接口的实现类,添加5个以上的Car对象,遍历集合元素,验证重复元素是否过滤了;如果没有过滤,实现过滤功能;把每个小车的price降10000元,再遍历,查看price是否已改变*/
package com.jerry.exer1;
import java.util.HashSet;
/**
 * @author jerry_jy
 * @create 2022-10-06 17:34
 */
public class Exer5 {
   public static void main(String[] args) {
        HashSet set = new HashSet();
        Car byd = new Car("BYD", 139999);
        Car bmw = new Car("BMW", 339999);
        Car farrier = new Car("Farrier", 939999);
        Car audi = new Car("Audi", 239999);
        Car benz = new Car("Benz", 439999);
        set.add(byd);
        set.add(bmw);
        set.add(farrier);
        set.add(audi);
        set.add(benz);
        set.add(benz);//重复添加,会失败的
        System.out.println(set);
        System.out.println("=====把每个小车的price降10000元,再遍历========");
        byd.setPrice(byd.decreasePrice());
        bmw.setPrice(bmw.decreasePrice());
        farrier.setPrice(farrier.decreasePrice());
        audi.setPrice(audi.decreasePrice());
        benz.setPrice(benz.decreasePrice());
        System.out.println(set);
    }
}
class Car {
    private String name;
    private double price;
    public Car() {
    }
    public Car(String name, double price) {
        this.name = name;
        this.price = price;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public double getPrice() {
        return price;
    }
    public void setPrice(double price) {
        this.price = price;
    }
    @Override
    public String toString() {
        return "Car{" +
                "name='" + name + '\'' +
                ", price=" + price +
                '}';
    }
    public double decreasePrice(){
        return price-10000;
    }
}

题目11

/*定义一个Collection接口类型的变量,引用一个List集合的实现类,实现添加单个元素,添加另一个集合,删除元素,判断集合中是否包含一个元素,判断是否为空,清除集合,返回集合里元素的个数等常用操作。*/
package com.jerry.exer1;
import java.util.ArrayList;
import java.util.HashSet;
/**
 * @author jerry_jy
 * @create 2022-10-06 17:50
 */
public class Exer6 {
   public static void main(String[] args) {
        ArrayList list = new ArrayList();
        System.out.println("======添加单个元素======");
        list.add("aa");
        list.add("bb");
        list.add("cc");
        System.out.println(list);//[aa, bb, cc]
        System.out.println("=======添加另一个集合========");
        ArrayList list1 = new ArrayList();
        list1.add("dd");
        list1.add("ee");
        list.addAll(list1);
        System.out.println(list);//[aa, bb, cc, dd, ee]
        System.out.println("=======删除元素========");
        list.remove("ee");
        System.out.println(list);//[aa, bb, cc, dd]
        System.out.println("=======判断集合中是否包含一个元素========");
        System.out.println(list.contains("dd"));//true
        System.out.println("=======判断是否为空========");
        System.out.println(list.isEmpty());//false
        System.out.println("=======返回集合里元素的个数========");
        System.out.println(list.size());//4
        System.out.println("=======清除集合========");
        list.clear();
        System.out.println(list.isEmpty());//true
    }
}

题目12

/*创建ArrayList实例化对象,添加10个以上的元素,在2号位插入一个元素,获得5号位元素,删除6号位元素,修改7号位的元素;*/
package com.jerry.exer1;
import java.util.ArrayList;
/**
 * @author jerry_jy
 * @create 2022-10-06 17:56
 */
public class Exer7 {
    public static void main(String[] args) {
        ArrayList list = new ArrayList();
        for (int i = 0; i < 10; i++) {
            list.add(i);
        }
        System.out.println("=====原来的list=====");
        System.out.println(list);
        System.out.println("=====在2号位插入一个元素=====");
        list.add(1, "new");
        System.out.println(list);
        System.out.println("=====获得5号位元素=====");
        System.out.println(list.get(4));//3
        System.out.println("=====删除6号位元素=====");
        System.out.println(list.remove(6));//5
        System.out.println(list);
        System.out.println("=====修改7号位的元素=====");
        list.remove(6);
        list.add(6, "new_7");
        System.out.println(list);
    }
}

题目13

/*通过四种方法遍历集合*/
package com.jerry.exer1;
import java.util.ArrayList;
import java.util.Iterator;
/**
 * @author jerry_jy
 * @create 2022-10-06 18:04
 */
public class Exer8 {
    /*通过四种方法遍历集合*/
    public static void main(String[] args) {
        ArrayList list = new ArrayList();
        for (int i = 0; i < 10; i++) {
            list.add(i);
        }
        System.out.println("for 方式一");
        Object[] array = list.toArray();
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
        }
        System.out.println("iterator 方式二");
        Iterator iterator = list.iterator();
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }
        System.out.println("for each方式三");
        for (Object o : list) {
            System.out.println(o);
        }
        System.out.println("直接打印list 方式四");
        System.out.println(list);
    }
}

题目14

/*创建LinkedList实例化对象,练习具有队列特点的方法*/
package com.jerry.exer1;
import java.util.Collections;
import java.util.LinkedList;
/**
 * @author jerry_jy
 * @create 2022-10-06 18:08
 */
public class Exer9 {
    /*创建LinkedList实例化对象,练习具有队列特点的方法*/
    public static void main(String[] args) {
        LinkedList linkedList = new LinkedList();
        linkedList.add("AA");
        linkedList.add("BB");
        linkedList.add("CC");
        linkedList.addFirst("first");
        linkedList.addLast("last");
        System.out.println(linkedList);//[first, AA, BB, CC, last]
        System.out.println(linkedList.getFirst());//first
        System.out.println(linkedList.getLast());//last
        linkedList.removeFirst();
        linkedList.removeLast();
        System.out.println(linkedList);//[AA, BB, CC]
        Collections.reverse(linkedList);
        System.out.println(linkedList);//[CC, BB, AA]
    }
}

题目15

    /*按要求实现下列问题:
1)封装一个新闻类,包含标题和内容属性,提供get、set方法,重写toString方法,打印对象时只打印标题;(10分)
2)只提供一个带参数的构造器,实例化对象时,只初始化标题;并且实例化两个对象:
新闻一:中国多地遭雾霾笼罩空气质量再成热议话题
新闻二:春节临近北京“卖房热”
3)将新闻对象添加到ArrayList集合中,并且使用ListIterator倒序遍历;
4)在遍历集合过程中,对新闻标题进行处理,超过15字的只保留前14个,然后在后边加“…”
5)在控制台打印遍历出经过处理的新闻标题;
*/
package com.jerry.exer1;
import java.util.ArrayList;
import java.util.Iterator;
/**
 * @author jerry_jy
 * @create 2022-10-06 18:11
 */
public class Exer10 {
    public static void main(String[] args) {
        News news1 = new News("新闻一:中国多地遭雾霾笼罩空气质量再成热议话题");
        News news2 = new News("新闻二:春节临近北京“卖房热”");
        ArrayList<News> list = new ArrayList<>();
        list.add(news1);
        list.add(news2);
        Iterator<News> iterator = list.iterator();
        while (iterator.hasNext()) {
            if (iterator.next().getTitle().length() > 15) {
                int len = iterator.next().getTitle().length() - 1;
                String substring = iterator.next().getTitle().substring(0, len - 1);
//                System.out.println(substring);
                iterator.next().setTitle(substring+ "...");
            } else {
                System.out.println(iterator.next());
            }
        }
    }
}
class News {
    private String title;
    private String content;
    public News() {
    }
    public News(String title) {
        this.title = title;
    }
    public News(String title, String content) {
        this.title = title;
        this.content = content;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
    @Override
    public String toString() {
        return "News{" +
                "title='" + title + '\'' +
                '}';
    }
}

面试01

Collection 和 Collections的区别

答:Collection是集合类的上级接口,继承于他的接口主要有Set 和List.

Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作


面试02

Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别
答:Set里的元素是不能重复的,用equals()方法判读两个Set是否相等
    equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值

面试03

List, Set, Map是否继承自Collection接口

答: List,Set是,Map不是


面试04

两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对

答:不对,有相同的hash code

值相同,Hash Code一定相同

HashCode相同,那么值不一定同。


面试05

说出ArrayList,Vector, LinkedList的存储性能和特性

答:ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。


面试06

HashMap和Hashtable的区别

答:

1.HashMap与Hashtable都实现了Map接口。由于HashMap的非线程安全性,效率上可能高于Hashtable。Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。

2. HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。

3.HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。

4.Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。

5.Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。


面试07

ArrayList和Vector的区别

答:就ArrayList与Vector主要从二方面来说.

一.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的

二.数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半


面试08

你所知道的集合类都有哪些?主要方法?

答:最常用的集合类是 List 和 Map。 List 的具体实现包括 ArrayList 和 Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。 List 适用于按数值索引访问元素的情形。

Map 提供了一个更通用的元素存储方法。 Map 集合类用于存储元素对(称作"键"和"值"),其中每个键映射到一个值。


面试09

以下代码的运行结果?
  public static void main(String[] args) {
    Integer[] datas = {1,2,3,4,5};
    List<Integer> list = Arrays.asList(datas);
    list.add(5);
    System.out.println(list.size());
  }
运行异常,不允许添加元素
Arrays.asList(…) 方法返回的 List 集合,既不是 ArrayList 实例,也不是 Vector 实例。 Arrays.asList(…) 返回值是一个固定长度的 List 集合

–end–


相关文章
|
7天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
24 2
|
12天前
|
存储 算法 Java
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
本文详解自旋锁的概念、优缺点、使用场景及Java实现。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
|
11天前
|
Java
Java 8 引入的 Streams 功能强大,提供了一种简洁高效的处理数据集合的方式
Java 8 引入的 Streams 功能强大,提供了一种简洁高效的处理数据集合的方式。本文介绍了 Streams 的基本概念和使用方法,包括创建 Streams、中间操作和终端操作,并通过多个案例详细解析了过滤、映射、归并、排序、分组和并行处理等操作,帮助读者更好地理解和掌握这一重要特性。
21 2
|
10天前
|
安全 Java
Java多线程集合类
本文介绍了Java中线程安全的问题及解决方案。通过示例代码展示了使用`CopyOnWriteArrayList`、`CopyOnWriteArraySet`和`ConcurrentHashMap`来解决多线程环境下集合操作的线程安全问题。这些类通过不同的机制确保了线程安全,提高了并发性能。
|
14天前
|
存储 缓存 Java
大厂面试必看!Java基本数据类型和包装类的那些坑
本文介绍了Java中的基本数据类型和包装类,包括整数类型、浮点数类型、字符类型和布尔类型。详细讲解了每种类型的特性和应用场景,并探讨了包装类的引入原因、装箱与拆箱机制以及缓存机制。最后总结了面试中常见的相关考点,帮助读者更好地理解和应对面试中的问题。
39 4
|
14天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
55 4
|
15天前
|
存储 Java 开发者
Java中的集合框架深入解析
【10月更文挑战第32天】本文旨在为读者揭开Java集合框架的神秘面纱,通过深入浅出的方式介绍其内部结构与运作机制。我们将从集合框架的设计哲学出发,探讨其如何影响我们的编程实践,并配以代码示例,展示如何在真实场景中应用这些知识。无论你是Java新手还是资深开发者,这篇文章都将为你提供新的视角和实用技巧。
12 0
|
3月前
|
存储 Java
【IO面试题 四】、介绍一下Java的序列化与反序列化
Java的序列化与反序列化允许对象通过实现Serializable接口转换成字节序列并存储或传输,之后可以通过ObjectInputStream和ObjectOutputStream的方法将这些字节序列恢复成对象。
|
1月前
|
算法 Java 数据中心
探讨面试常见问题雪花算法、时钟回拨问题,java中优雅的实现方式
【10月更文挑战第2天】在大数据量系统中,分布式ID生成是一个关键问题。为了保证在分布式环境下生成的ID唯一、有序且高效,业界提出了多种解决方案,其中雪花算法(Snowflake Algorithm)是一种广泛应用的分布式ID生成算法。本文将详细介绍雪花算法的原理、实现及其处理时钟回拨问题的方法,并提供Java代码示例。
72 2
|
1月前
|
JSON 安全 前端开发
第二次面试总结 - 宏汉科技 - Java后端开发
本文是作者对宏汉科技Java后端开发岗位的第二次面试总结,面试结果不理想,主要原因是Java基础知识掌握不牢固,文章详细列出了面试中被问到的技术问题及答案,包括字符串相关函数、抽象类与接口的区别、Java创建线程池的方式、回调函数、函数式接口、反射以及Java中的集合等。
29 0

热门文章

最新文章

下一篇
无影云桌面