Java
文章平均质量分 93
SunnyRivers
在通信、游戏、互联网、新能源等不同行业从事过多年大数据开发相关工作,想通过博客和大家一起分享大数据技术带来的经验和乐趣。
展开
-
通俗易懂理解Java泛型
参数化类型Java泛型是J2 SE1.5中引入的一个新特性,其本质是参数化类型,也就是说所操作的数据类型被指定为一个参数(type parameter)这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。原创 2024-09-04 13:48:10 · 1399 阅读 · 0 评论 -
通俗易懂理解Java枚举类
一组常量。比如一年的 4 个季节,一年的 12 个月份,一个星期的 7 天,方向有东南西北等。Java 枚举类使用 enum 关键字来定义,各个常量使用逗号 , 来分割。例如定义一个颜色的枚举类。enum Color这时候一定有人会说,常量直接用static final来定义来定义不就好了,花里胡哨的搞个额外的枚举类有什么意义?// TODO:编译器无法检查每个值的合理性也就是我这里的color我想写什么字符串都可以。原创 2024-09-04 10:29:55 · 1708 阅读 · 0 评论 -
Java System类使用教程
要复制的数组在source中传递,source中开始复制的索引在sourceStart中传递。将接收副本的数组在target中传递,在targetStart中传递复制开始的索引。Size是要复制的元素的数量。System类提供的功能包括标准输入、标准输出和错误输出流、访问外部定义的属性和环境变量、加载文件和库的方法、以及用于快速复制数组的一部分的实用程序方法。它继成了Object类。原创 2024-09-03 13:09:01 · 972 阅读 · 0 评论 -
Java如何写回调
前言其实很多年前,做Android的时候就总结过回调,但那个时候总结的算是比较片面,导致时间长不写项目,都忘了,这次就写个更简单的总结。回调的本质:对象引用的传递。(可以是普通对象,但一般时候会是接口,因为大部分方法需要实现的人自己编写)简单案例这里就简单写一下一个人只要不出意外他的什么周期有青年,中年,老年。不同的人,在不同的时期干的事情不同,因此回调函数用接口实现。代码如下:接口类似于观察者public interface LiftTime { void youth(String原创 2021-08-12 16:16:58 · 2361 阅读 · 3 评论 -
Java笔试面试目录
转载转载 2019-12-17 20:57:24 · 171 阅读 · 0 评论 -
两个正数相乘为什么结果是负数
前言说来实在惭愧,用spark处理hive表中的数据时,出现了两个正数相乘最后结果显示为负数后我的第一反应竟然有点懵逼,充分说明了自己在使用数据时,对Hive表中的字段类型没有进行充分的了解,当时,第二反应才想起是数据类型导致的数据超出范围了,这个还得归结在当时创建Hive表的时候,没有充分对表中每个字段要存储的数据类型进行充分调查Java基本数据类型及范围分类数据类型字节取值...原创 2019-09-19 14:16:04 · 6741 阅读 · 0 评论 -
二分查找算法
基本查找:数组元素无序(从头找到尾)二分查找(折半查找)前提:数组必须是有序的(所以一般我们会用排序算法排好序,再使用二分查找)思想:每次都猜中间的那个元素,比较大或小,就能减少一半的元素思路:(1)定义最大索引、最小索引(2)计算出中间索引(3)拿中间索引的值和要查找的值进行比较 a. 相等:就返回当前索引 b. 不相等: ...原创 2018-05-11 15:48:02 · 284 阅读 · 0 评论 -
选择排序详细分析
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3]交换,导致第一个5挪动到第二个5后面)。(上面是百度出来的,做一个简单的解释:从0索引开始,依次和后面元素比较,小的往前放,第...原创 2018-05-11 14:50:49 · 2182 阅读 · 0 评论 -
冒泡排序详细分析
它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名“冒泡排序”。(上面是百度出来的,我自己做一个简单的解释:相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处) 算法原理冒泡排序算法的...原创 2018-04-04 17:08:23 · 619 阅读 · 0 评论 -
Java构建工具:Maven与Gradle的对比
在Java码农的世界里,构建工具一直是一个不可或缺的元素。一开始,世上是只有一个构建工具的那就是Make后来发展为GNU Make。但是由于需求的不断涌现,这个小圈子里又逐渐衍生出其他千奇百怪的构建工具。在这个小圈子中影响力最大的角色莫过于Maven了。它使用XML作为配置文件,改进了前辈Ant的复杂的构建配置,提供了一些现成的目标,而不需要我们一个个的将构建任务的每个命令一一列出。另外它提供了...转载 2019-06-13 14:33:33 · 1105 阅读 · 0 评论 -
编译型语言和解释型语言
前言旁边一小伙问:python为什么比c运行效率低?我说:python是解释型语言小伙问:啥是解释型语言?…概念编译型语言解释型语言度娘的解释已经相当全面了简单概括两个语言最终都必须转换为二进制代码(机器语言)编译型语言在运行前就有一个编译的过程,运行的时候不需要重新编译,所以效率高解释型语言在运行时才开始翻译为机器语言,每执行一次就得翻译一次,因此效率低后记上面来自度...原创 2019-04-17 15:02:10 · 216 阅读 · 0 评论 -
进程和线程的概念
并行性:指两个或多个事件在同一时刻发生。并发性:是指两个或多个事件在同一时间间接发生。进程:系统进行资源分配和调度的一个独立单位。线程:系统进行资源分配和调度的基本单位。中央处理器(CPU):用来完成取指令(指令:计算机执行某种操作的命令。每条指令可以完成一个独立的算术运算或逻辑运算操作)和执行指令任务的计算机部件。CPU的基本功能:指令控制:程序的顺序控制。由于程序是一个原创 2017-04-13 18:42:41 · 459 阅读 · 0 评论 -
Java对象的销毁
Java对象的销毁每个对象都有生命周期,当对象的生命周期结束时,分配给对象的内存地址将会被回收。何种对象会被java虚拟机视为垃圾:(1)对象引用超过其作用范围,这个对象被视为垃圾{Example e = new Example();}在大括号之外的范围,就被视为超过e的作用范围。(2)将对象赋值为null{Example e = new Example()原创 2017-05-19 19:26:48 · 7533 阅读 · 3 评论 -
Java中Xml文件的解析
开发中比较常见的解析方式有三种,如下:1. DOM:要求解析器把整个XML文档装载到内存,并解析成一个Document对象。a) 优点:元素与元素之间保留结构关系,故可以进行增删改查操作。b) 缺点:XML文档过大,可能出现内存溢出显现。2. SAX:是一种速度更快,更有效的方法。它逐行扫描文档,一边扫描一边解析。并以事件驱动的方式进行具体解析,每执行一行,都将触发对应的事件。(了原创 2017-10-17 20:04:20 · 482 阅读 · 0 评论 -
Linux 基本命令不能用的解决方法
问题描述最近某次,新建一个ssh客户端后,发现好多命令都不能用了比如:ls, vi, cat等,提示:-bash: XX: No such file or directory12但在其它还未关闭的ssh终端中可以使用,推测是/etc/profile文件的问题,显示$PATH后发现不对;切换root权限准备修改profile文件后,发现vi命令不能用,最后百度到了解决方法。解决方法在ssh终端中执...转载 2018-03-24 14:53:05 · 907 阅读 · 0 评论 -
HashMap的工作原理--重点----数据结构示意图的理解
HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道HashTable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或中高级面试中。投资银行更喜欢问这个问题,甚至会要求你实现HashMap来考察你的编程能力。ConcurrentHashMap和其它同步集合的引入...转载 2018-05-21 10:46:30 · 275 阅读 · 0 评论 -
网络编程基础知识
网络通信网络编程就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换。网络通信三要素 1.IP地址:InetAddress 网络中设备的标识,不易记忆,可用主机名 2.端口号 用于标识进程的逻辑地址,不同进程的标识 3.传输协议 通讯的规则 常见协议:TCP,UDP UDP将数据源和目的封装成原创 2017-04-12 14:41:31 · 487 阅读 · 0 评论