java学习第二十四天内容

java学习第二十四天内容,第1张

java学习第二十四天内容

1.前一天重点内容复习

        HashMap集合存储自定义对象的键如何保证键唯一

                HashMap的put方法依赖于Object类的HashCode()和equals()方法,存储的键值对对象中的键如果是自定义类型,则必须重写Object类的HashCode()和equals()方法,否则比较的是对象地址值不是对象的成员信息

        HashMap和Hashtable的区别

                HashMap是线程不安全类,允许nul键和null值出现,线程不同步,不安全,执行效率高

                Hashtable是线程安全类,不允许null键和null值,线程同步,安全,执行效率低

        final,finalize,finally的区别

                final:状态修饰符,修饰类,此类不能被继承,修饰方法,此方法不能被重写,修饰变量,此变量就为常量

                finalize:是一个方法,是jvm调用gc时候的回收方法,将没有更多引用的对象回收掉

                finally:常用于捕获异常后释放相关系统资源

        Map和Collection的区别

                集合存储元素的区别

                        Map集合为双列集合,存储键值对元素

                        Collection集合为单列集合,存储单个元素

                子实现类的依赖关系

                        Collection集合的Set集合依赖于Map实现

                                HashSet依赖于HashMap

                                TreeSet依赖于TreeMap

                遍历方式不同

                        Collection

                                Object[] toArray()

                                Iterator iterator()

                                增强for循环

                        Map

                                获取所有键的集合Set keySet()之后遍历所有键,通过键获取V get(k,key)

                                获取所有键值对对象,Set>  entrySet(),之后遍历所有键值对对象,K get(K key)和V get(V value)

        throw和throws的区别

                相同点:两这都是抛出异常

                不同点

                        位置不同

                                throws:是在方法上声明

                                throw:是在方法体中声明

                        异常处理者不同

                                throws:谁调用谁处理

                                throw:通过逻辑判断语句进行处理

                        异常可能性不同

                                 throws:可能会出现异常

                                 throw:一定会出现异常

                        异常名称不同

                                 throws:后面跟异常的类名,多个类名需要用逗号隔开

                                 throw:后面跟异常对象,通常为匿名对象

2.Collections针对集合 *** 作的工具类相关功能

        public static T max(Collection coll):获取Collection集合中的最大值

        public static int binarySearch(List> list, T key):二分搜索法,返回指定集合中指定元素第一次出现的角标值(前提此集合必须有序)

        static > void sort(List list):自然排序,按照指定条件排序

        static void sort(List list , Comparator c):针对List集合比较器排序

        public static void shuffle(List list):List集合的随机置换

3.进程和线程

        进程

                定义:能够调用系统资源的独立单位

                意义:提高cpu的利用率

        线程

                定义:能够执行的独立单元

                依赖于进程存在,一个进程可能存在多个线程,一个线程存在于某个线程组中,线程就相当于进程中的一个任务

                意义:相互抢占cpu执行权,使得cpu不断地切换线程,达到一种同时处理多个线程的效果

                执行:线程被cpu执行具有随机性

4.如何创建线程

        方式1

                1.自定义一个继承自Thread线程类的类

                2.重写Thread类中的run()方法

                3.在main线程中定义自定义类对象

                4.启动线程对象,调用start()方法

        方式2

                1.定义一个资源类,实现Runnable接口,重写run方法

                2.在main线程中创建资源类的对象

                3.创建Thread类对象,将资源类对象作为参数传入进去

                4.启动线程

5.Thread类

        public final void setName(String name):将线程的名称改为name

        public final void join()  throws InterruptedException:等待这个线程死亡

        public final void setPriority(int newPriority):设置优先级

        public final int getPriority():获取优先级

        public static void yield():暂停当前正在执行的线程,去执行其他线程

        

                                

                

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5718361.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存