首页 > 编程语言 >Java学习日记 Day6 JavaSE完结,步入正轨!!

Java学习日记 Day6 JavaSE完结,步入正轨!!

时间:2024-01-21 22:03:51浏览次数:34  
标签:-------- TreeNode val Day6 线程 注解 Java JavaSE Junit

JavaSE:
--------多线程--------
①线程:线程在java中也是对象,也要创造线程类。
②创建线程的三种方式:
继承Thread:Thread是Runnable的实现类,而线程类进一步继承Thread类。
实现Runnable:线程类直接对Runnable类进行实现。
实现Callable:线程类实现Callable类。
③线程的生命周期:线程从诞生到死亡,除此之外还有就绪态、阻塞态、运行态。运行态还会进入等待池或者锁池。
④线程安全问题:线程安全问题有三种解决办法,同步代码块、同步方法或者使用Lock锁。
⑤线程同步的缺点:效率慢。有可能还会出现【死锁】。死锁就是每个线程各自占用一部分资源,而每个线程等待的资源都不在空闲状态,产生了死锁现象。
⑥线程通信问题(生产者与消费者问题)。
--------Junit、注解、枚举--------
⑦Junit:Junit是白盒测试。
⑧注解:
Junit的注解:Test、After、Before
JDk内置的三个注解:Override(重写)、Deprecated(表示方法过时)、SuppressWaring(能够抑制编译器警告)
元注解(修饰注解的注解):Retention(修饰注解的生命周期)、Target(修饰注解能够修饰什么东西)、Documented、Inherited
⑨枚举:是对象个数有限或确定的类,可以应用于在输入入口对参数做限制。

算法:
①前k个高频值:就是统计数组中出现次数最多的k的数字。思路是先用HashMap统计每个数字出现次数。然后用优先队列(小根堆)根据出现次数把键值对(封装成数组)进行排列。这个时候因为只需要维护k个键值对,如果小根堆的堆顶小于下一个待加入的数值,直接把堆顶弹出即可。最后把小根堆装进数组返回。
②二叉树的节点定义:
public class TreeNode(){
int val;
TreeNode left;
TreeNode right;
TreeNode(){
}
TreeNode(int val){
this.val = val;
}
TreeNode(int val, TreeNode left, TreeNode right){
this.val = val;
this.left = left;
this.right = right;
}
}
③二叉树的递归遍历:比较简单,分清楚前中后遍历中add代码的位置就行。

今天JavaSE学完了,还有一点Java新版本的特性,感觉可以放在后面看。明天看看是按顺序学数据库和前端还是直接进入开源框架。
算法明天继续二叉树,看看迭代遍历和统一迭代法的区别是啥。。

标签:--------,TreeNode,val,Day6,线程,注解,Java,JavaSE,Junit
From: https://www.cnblogs.com/zygacmg/p/17977693

相关文章

  • JAVA常用编码介绍
    ASCII码(最先采用的编码方式,专为英语使用)Unicode(为了克服ASCII码的缺点,方便其他国家使用,创造了Unicode意为统一编码的意思)UTF-8编码(为了克服Unicode编码的缺点:所有字符都用两个字节表示,浪费存储空间。为了节省空间又创造了UTF-8编码)......
  • Java基础语法
    Java基础语法基础阶段1、注释、标识符、关键字注释平时我们编写代码,在代码量比较少的时候,我们还可以看懂自己写的,但是当项目结构一旦复杂起来,我们就需要用到注释了。注释并不会被执行,是给我们写代码的人看的书写注释是一个非常好的习惯Java中的注释有三种:单行......
  • JAVA数据类型
    所有数据类型基本数据类型间的转换->自动类型转换->强制类型转换->基本数据类型间转换练习题基本数据类型和String类型间的转换->基本数据类型转为String类型->String数据类型转为基本数据类型......
  • 关于Java 数组
    了解Java数组Java中的数组是一种强大而灵活的数据结构,让我们一起深入探讨它的方方面面,从基础的概念到高级的应用。1.数组的创建与初始化首先,我们来看如何创建和初始化一个简单的整型数组:publicclassArrayExample{publicstaticvoidmain(String[]args){......
  • Java_讨论类加载器的双亲委派机制
    双亲委派机制简而言之,当某个类加载器在接到加载请求时,优先会将任务委托给父类加载器,一直到最顶层的类加载器,如果不能成功加载,才会尝试自己加载java.lang.ClassLoaderprotectedClass<?>loadClass(Stringname,booleanresolve)throwsClassNotFoundException{synchron......
  • Java中内部类的使用总结
    ​ 参考文档:Java中内部类的使用总结-CJavaPy1、非静态内部类非静态内部类,也就是成员内部类,是定义在另一个类内部的非静态类。这种内部类与外部类之间有着密切的联系,它可以访问外部类的所有成员(包括私有成员),同时外部类也可以访问内部类的所有成员(包括私有成员)。publicclass......
  • Java中遍历方法对比
    DemopublicclassTest{publicstaticvoidmain(String[]args){test(10);test(100);test(1000);test(10000);}publicstaticvoidtest(intsize){//1.组装数组List<String>list=list(siz......
  • javascript中apply的用法
    javascript中apply的用法欧方2023-03-3118:30江苏在JavaScript中,apply方法和call方法类似,都是用于调用一个函数或方法,不同之处在于apply方法接受一个参数数组作为函数的参数列表。apply方法的语法如下:function.apply(thisArg,[argsArray])其中,t......
  • Java实现Excel导入和导出
    目录目录前言1.功能测试1.1测试准备1.2数据导入1.2.1导入解析为JSON1.2.2导入解析为对象(基础)1.2.3 导入解析为对象(字段自动映射)1.2.4导入解析为对象(获取行号)1.2.5导入解析为对象(获取原始数据)1.2.6 导入解析为对象(获取错误提示)1.2.7导入解析为对象(限制字段......
  • Java连接8.0版本以上的数据库
    一.连接数据库在使用Java连接8.0版本以上的数据库时,可以按照如下步骤:下载需要的包,本次教程中使用的是下面这个版本。该驱动网上有许多资源,可根据自己的需求下载。建立与数据库的连接单元在合适的包下新建"DButil.java"文件并输入如下代码:importjava.sql.Connecti......