首页 文章 精选 留言 我的

精选列表

搜索[java],共10000篇文章
优秀的个人博客,低调大师

Java学习笔记--可变参数

可变参数的格式: 数据类型... 变量名 可变参数要 注意的细节: 1. 如果一个函数 的形参使用上了可变参数之后,那么调用该方法的时候可以传递参数也可以不传递参数。 2. 可变参数实际上是一个数组对象。 3. 可变参数必须位于形参中的最后一个参数。 4. 一个函数最多只能有一个可变 参数,因为可变参数要位于形参中最后一个位置上。 public class Demo4 { public static void main(String[] args) { int[] arr = {1,2,3,4}; add(1,2,3,4);//输出10 add(arr);//输出10 add();//输出0 } public static void add(int... arr){ //长度是0 int result = 0; for(int item : arr){ result+=item; } System.out.println("总和:"+ result); } }

优秀的个人博客,低调大师

Java源码系列(一)集合

(一)hashCode()和equals 如上:在hashmap的底层实现是链表+数组: (二)那些年实现过的源码 Stringbuffer(Stringbuilder):内部由数组实现 ;扩容为每次变为原来的2倍+2;区别Stringbuffer的方法线程安全,使用了重量级锁synchronized,修饰了所有方法 ArrayList(Vector):内部是数组,每次扩容为原来的1.5,vector线程安全, hashmap的装填因子:0.75 以上是jdk1.8的源码,当拉米塔=0.5时,也就是期望和方差都是0.5时; 二:hashmap和hashtable 以及Properties hashmap继承自abstructMap抽象类,线程不安全 ,而hashtable继承自dictionary接口线程安全 hashMap的putval方法:由put方法包装,因为n是2的整数次幂,所以这里使用了n-1,就得到了,所有位都是1,然后进行与运算; 三,强软弱虚引用 四,容器的同步控制和只读设置

优秀的个人博客,低调大师

Java】归并排序算法

归并排序 归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。 归并排序 归并排序算法稳定,数组需要O(n)的额外空间,链表需要O(log(n))的额外空间,时间复杂度为O(nlog(n)),算法不是自适应的,不需要对数据的随机读取。 工作原理 申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列。 设定两个指针,最初位置分别为两个已经排序序列的起始位置。 比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置。 重复步骤3直到某一指针达到序列尾。 将另一序列剩下的所有元素直接复制到合并序列尾。 代码 public class MergeSortTest { public static void main(String[] args) { //测试数据 int A[] = { 1, 6, 4, 5, 2, 9, 7, 23, 56, 43, 99 }; // 排序前 System.out.println("排序前:"); for (int a : A) { System.out.print(a + " "); } System.out.println(); // 排序 mergeSort(A); // 排序后 System.out.println("排序后:"); for (int a : A) { System.out.print(a + " "); } System.out.println(); } // 排序入口 public static void mergeSort(int[] A) { sort(A, 0, A.length - 1); } //递归 public static void sort(int[] A, int start, int end) { if (start >= end) return; // 找出中间索引 int mid = (start + end) / 2; // 对左边数组进行递归 sort(A, start, mid); // 对右边数组进行递归 sort(A, mid + 1, end); // 合并 merge(A, start, mid, end); } // 将两个数组进行归并,归并前面2个数组已有序,归并后依然有序 public static void merge(int[] A, int start, int mid, int end) { int[] temp = new int[A.length];// 临时数组 int k = 0; int i = start; int j = mid + 1; while (i <= mid && j <= end) { // 从两个数组中取出较小的放入临时数组 if (A[i] <= A[j]) { temp[k++] = A[i++]; } else { temp[k++] = A[j++]; } } // 剩余部分依次放入临时数组(实际上两个while只会执行其中一个) while (i <= mid) { temp[k++] = A[i++]; } while (j <= end) { temp[k++] = A[j++]; } // 将临时数组中的内容拷贝回原数组中 (left-right范围的内容) for (int m = 0; m < k; m++) { A[m + start] = temp[m]; } } } 对于算法,理解原理很重要。。。 配一张图 附页 GitHub源码:https://github.com/wzmyyj/MergeSort

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册