java碎碎碎碎碎碎

news/2024/11/7 5:33:16/

目录

switch的参数类型:

数组复制方法:

java.util.Collection:

java.util.Collections :

Math.round():

HashMap和Hashtable都是典型的Map实现:

JDBC使用的是桥接模式

实例变量是放在堆内存中。

Java String的join()方法:

" + "

HashMap采用了链地址法,ThreadLocalMap则是开放地址法。

数组:


switch的参数类型:

switch语句后的控制表达式只能是short、char、int、long整数类型和枚举类型,不能是float,double和boolean类型。String类型是java7开始支持。

没有break情况下,遇到匹配的case会一直运行下去。

数组复制方法:

1.for循环逐一复制2.System.arraycopy3.Array.copyOf4.使用clone方法

效率 : System.arraycopy > clone > Arrays.copyOf > for循环

public class test2 {public static void main(String[] args) {int []nums={1,2,3,4,5,6};System.out.println(Arrays.toString(nums));//     long start = System.currentTimeMillis();int []num=new int[nums.length];for(int i=0;i<num.length;i++){num[i]=nums[i];}System.out.println(Arrays.toString(num));//    long cost = System.currentTimeMillis() - start;//  System.out.println("Logic cost : " + cost);//    long start1 = System.currentTimeMillis();int []num1=new int[nums.length];System.arraycopy(nums,0,num1,0,nums.length);//       long cost1 = System.currentTimeMillis() - start1;//     System.out.println("Logic cost1 : " + cost1);System.out.println(Arrays.toString(num1));int []num2=nums.clone();System.out.println(Arrays.toString(num2));int[] num3 = Arrays.copyOf(nums,nums.length);System.out.println(Arrays.toString(num3));}
}

java.util.Collection:

是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。

java.util.Collections :

是一个包装类。它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,服务于Java的Collection框架。

Math.round()

表示“四舍五入”,而四舍五入是往大数方向入。Math.round(11.5)的结果为12,Math.round(-11.5)的结果为-11而不是-12。

HashMap和Hashtable都是典型的Map实现

Hashtable在实现Map接口时保证了线程安全性,而HashMap则是非线程安全的。所以,Hashtable的性能不如HashMap,因为为了保证线程安全它牺牲了一些性能。

Hashtable不允许存入null,无论是以null作为key或value,都会引发异常。而HashMap是允许存入null的,无论是以null作为key或value,都是可以的。


JDBC使用的是桥接模式

定义 : 将抽象部分与它的实现部分分离,使它们都可以独立的变化

意图 : 将抽象与实现解耦


实例变量是放在堆内存中。

静态变量是放在方法区中。

局部变量是放在对应方法的栈帧变量表当中。


Java String的join()方法:

elements用指定的字符串delimeter连接起来,返回这个新组成的字符串

        String message = String.join("-", "Java", "is", "cool");System.out.println(message);//Java-is-cool

" + "

在java中,“+” 和 “+=” 是经过重载的运算符,而java不允许程序员进行运算符的重载。如果 “+” 之前是String,那么此时,“+” 的作用就是连接两个字符串;若此时 “+” 后面是基本数据类型的话,可以直接进行连接,若是引用数据类型的话,则会调用该对象的toString()方法。

        System.out.println("is "+ 100 + 5);//is 1005System.out.println(100 + 5 +" is");//105 isSystem.out.println("is "+ (100 + 5));//is 105System.out.println(100+" is"+5);//100 is5System.out.println(100+5+" is "+200+5);//105 is 2005System.out.println("is "+100+5+200+300);//is 1005200300

HashMap采用了链地址法,ThreadLocalMap则是开放地址法。

开放定址法:当冲突发生时,使用某种探查(亦称探测)技术在散列表中形成一个探查(测)序列。沿此序列逐个单元地查找,直到找到给定 的关键字,或者碰到一个开放的地址(即该地址单元为空)为止(若要插入,在探查到开放的地址,则可将待插入的新结点存人该地址单元)。查找时探查到开放的 地址则表明表中无待查的关键字,即查找失败。 

链地址法:将所有关键字为同义词的结点链接在同一个单链表中。若选定的散列表长度为m,则可将散列表定义为一个由m个头指针组成的指针数 组T[0..m-1]。凡是散列地址为i的结点,均插入到以T[i]为头指针的单链表中。T中各分量的初值均应为空指针。

数组:

当数组的初始化完成后数组在内存中所占用的空间将会被固定,即使我们清空这个数组中的元素,它所占用的空间依然会被保留,这造成了Java数组长度的不可变。

数组是一种引用数据类型,继承自Object类的,所以其中也包含了未被重写的equals()方法,所有的引用变量都能调用equals()方法来判断他是否与其他引用变量相等,使用这个方法来判断两个引用对象是否相等的判断标准与使用==运算符没有区别,只有在两个引用变量指向同一个对象才会返回true。


个人总结:

今天成功返校,同时,也换了一个学习的地方,继续学习后端。

返校后还要进行一个周的隔离,这一个周都要在宿舍度过。问题不大,一眨眼就过去了。


http://www.ppmy.cn/news/806801.html

相关文章

JavaWeb_瑞吉外卖_项目优化Day11-Mysql主从复制, Nginx

JavaWeb_瑞吉外卖_项目优化Day11-Mysql主从复制, Nginx Mysql主从复制介绍配置主库Master从库Slave 读写分离案例背景Sharding-JDBC介绍入门案例 Nginx概述介绍下载安装目录结构 命令配置文件结构具体应用部署静态资源反向代理负载均衡 来源 Mysql主从复制 介绍 MySQL主从复制…

基于aarch64分析kernel源码 一:环境搭建

一、测试环境 功能工具操作系统ubuntu 22.04编译工具gcc-12-aarch64-linux-gnu调试工具gdb-multiarch模拟器qemu 6.2.0busyboxbusybox-1.36.1kernellinux-6.4.1编辑器vscode 二、编译器 1、查找ubuntu仓库中aarch64编译器 lqlq-virtual-machine:~/my$ apt-cache search aar…

Java 流式编程实现业务分组并根据分组后的数据条数做对比

业务场景&#xff1a; 1.需要根据路由表中运单id和数据状态&#xff08;为 107妥投 &#xff0c;117部分妥投&#xff0c; 108拒签 &#xff09;的数据进行分组&#xff0c;并取出分组后数量 2.需要根据运单id 的集合去订单表及订单详情表查询对应的数据&#xff0c;并运单id 进…

Java面试题大全(2023牛客网最新版)大厂面试题附答案详解

很多 Java 工程师的技术不错&#xff0c;但是一面试就头疼&#xff0c;10 次面试 9 次都是被刷&#xff0c;过的那次还是去了家不知名的小公司。 问题就在于&#xff1a;面试有技巧&#xff0c;而你不会把自己的能力表达给面试官。 应届生&#xff1a;你该如何准备简历&#…

springboot+redis+mysql+quartz-使用pipeline+lua技术将缓存数据定时更新到数据库

一、重点 代码讲解&#xff1a;7.3点赞功能-定时持久化到数据库-Java程序整合pipelinelua_哔哩哔哩_bilibili https://www.bilibili.com/video/BV1Lg4y1w7U9 代码&#xff1a; blogLike_schedule/like08 xin麒/XinQiUtilsOrDemo - 码云 - 开源中国 (gitee.com) https://g…

常用的公共 DNS 服务器 IP 地址

公共 DNS 服务器 IP 地址 名称DNS 服务器 IP 地址阿里 AliDNS223.5.5.5223.6.6.6CNNIC SDNS1.2.4.8210.2.4.8114 DNS114.114.114.114114.114.115.115oneDNS112.124.47.27114.215.126.16DNS 派 电信/移动/铁通101.226.4.6218.30.118.6DNS 派 联通123.125.81.6140.207.198.6Goog…

dns协议

目录 简介&#xff1a;域名的构成DNS记录类型介绍命令:nslookup国内DNS公共服务器 简介&#xff1a; DNS (Domain Name System)域名系统是一种用于TCP/IP应用程序的分布式数据库&#xff0c;它提供域名和IP地址之间的转换及有关电子邮件的选路信息 IP地址是面向主机的&#xff…

Linux--进程

什么叫做进程&#xff1f; 程序加载到内存就叫进程&#xff08;看不懂是吧&#xff0c;看下面更详细一些&#xff09; 进程对应的代码和数据进程对应的PCB结构体