![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
魔都大迪奥
这个作者很懒,什么都没留下…
展开
-
Java中特殊符号“.“的深入理解及protected的访问权限分歧
Java中特殊符号"."的深入理解及protected的访问权限分歧在深入理解前让我们看一段代码Q : 为什么会报错?A : 因为你在A的类中声明clone方法Q : 真的是因为这个原因吗?众所周知,所有的class类都是默认继承object类虽然clone()在Object中被protected修饰但根据protected的原理(同包同类子类中都能调用)这里的clone()应...原创 2020-09-09 11:54:05 · 2218 阅读 · 0 评论 -
浅谈byte型常量池
浅谈byte型常量池二话不说,先来看三个代码Integer i1 = 127 ;Integer i2 = 127 ;println(i1 = i2);trueInteger i1 = 128 ;Integer i2 = 128 ;println(i1 = i2);falseInteger i1 = -1;Integer i2 = -1 ;println(i1 ...原创 2019-10-19 19:40:27 · 637 阅读 · 0 评论 -
Java中特殊符号"."的深入理解及protected的访问权限分歧
Java中特殊符号"."的深入理解及protected的访问权限分歧在深入理解前让我们看一段代码Q : 为什么会报错?A : 因为你在A的类中声明clone方法Q : 真的是因为这个原因吗?众所周知,所有的class类都是默认继承object类虽然clone()在Object中被protected修饰但根据protected的原理(同包同类子类中都能调用)这里的clone()应...原创 2019-10-18 20:19:40 · 3678 阅读 · 0 评论 -
Scala中apply的用法
Scala中apply的用法Scala正常创建的对象object Scala08_Method { def main(args: Array[String]): Unit = { val user = new User08() }}class User08 { //类中的方法其实就是函数,所以声明方式和函数完全一样 def test(obj: Object...原创 2019-10-18 19:46:10 · 239 阅读 · 0 评论 -
Scala--包
Scala--包包的命名1)命名规则2)命名规范包说明(包语句)导包访问权限包对象包的命名1)命名规则只能包含数字、字母、下划线、小圆点.,但不能用数字开头,也不要使用关键字。2)命名规范一般是小写字母+小圆点com.公司名.项目名.业务模块名包说明(包语句)Scala有两种包的管理风格,一种方式和Java的包管理风格相同,每个源文件一个包(包名和源文件所在路径不要求必须一致),包...原创 2019-10-18 18:54:01 · 262 阅读 · 0 评论 -
Scala--惰性函数
Scala--惰性函数当函数返回值被声明为lazy时,函数的执行将被推迟,直到我们首次对此取值,该函数才会执行。这种函数我们称之为惰性函数。def main(args: Array[String]): Unit = { //惰性函数 //什么时候被调用,什么时候才执行 lazy val res = sum(10,30) println("-----------...原创 2019-10-18 18:36:18 · 423 阅读 · 1 评论 -
Scala--控制抽象
Scala--控制抽象控制抽象的基本原理:将函数的逻辑传给另一个函数的参数列表def foo(a : =>Unit):Unit={ a}foo(println("aaa"))好处在于自由在参数列表中写逻辑,给其他函数使用 def try1(a : =>Unit):Unit={ a } try1{ println("aaa...原创 2019-10-18 18:34:22 · 208 阅读 · 0 评论 -
Scala--递归
Scala--递归Java中递归需要注意的点:1.函数自己调用自己2.函数在调用自己时,应该有跳出的逻辑3.递归函数在调用时,应该有规律Scala也满足了这三点的同时,有增加了新特性要求递归函数必须显示声明返回值类型,如果不声明返回值类型,递归无法推断出类型def test(i: Int):Int = { if (i == 1) { 1 }else{ i * ...原创 2019-10-18 18:10:09 · 128 阅读 · 0 评论 -
浅谈-栈上分配和逃逸分析
浅谈-栈上分配和逃逸分析前体栈上分配逃逸分析情景一情景二前体分析结论前体让我们先来看一段代码String s = "a" + "b"请问这代码产生了几个对象?有的人可能会说3个有的人可能会说1个这里先不说答案,我们先回顾下什么是对象,对象放在哪里?一般情况下,我们把放在堆里面的称之为对象也就意味着对象只能放在堆里面其实并不是这样,对象其实并不是只能放在堆里面它也能放在栈里面...原创 2019-10-18 17:19:34 · 426 阅读 · 0 评论 -
Scala函数--函数式练习及柯里化函数的概念
Scala函数--函数式练习及柯里化函数的概念题目一: 用一个for写出一个三角形图案题目二:逆推 f(10)(20)() 公式 结果为200第一种写法第二种写法第三种写法柯里化函数举例疑问为什么f2可以使用x的值?闭包柯里化函数题目一: 用一个for写出一个三角形图案 def main(args: Array[String]): Unit = { for ( i <- 1 t...原创 2019-10-18 13:57:53 · 365 阅读 · 0 评论 -
Scala函数--高级函数式
Scala函数--高级函数式函数可以作为参数传递举例一举例二匿名函数Scala对匿名函数也遵循了至简原则如果不关心匿名名字,可以使用匿名函数简化参数的传递如果函数只有一行代码,可以省略大括号如果函数的类型可以确定,可以省略参数类型如果参数列表只有一个参数,可以省略小括号如果参数只有在逻辑中使用一次,那么参数可以省略,然后用下划线代替但注意至简匿名函数是有前提的(以举例三为例)正常情况下如果参数被使...原创 2019-10-18 13:38:06 · 326 阅读 · 0 评论 -
Scala函数--中级函数式--Scala中参数个数最大值为22个
Scala函数--中级函数式--Scala中参数个数最大值为22个 def main(args: Array[String]): Unit = {至简原则中级版函数式编程原版1.如果函数逻辑中需要返回结果,那么return关键字可以省略 可以将函数体中最后一行代码作为函数的返回结果2.如果可以通过返回值推断出返回值类型,那么返回值类型可以省略3.如果函数的主体内容只有一行代...原创 2019-10-18 11:29:33 · 1123 阅读 · 0 评论 -
Scala函数-入门级函数式
Scala函数-入门级函数式def main(args: Array[String]): Unit = {函数 重要注意三点: 函数名,Input(传入参数),Output(返回值) 1.函数, 无参,无返回值 def f1(): Unit = { println("f1....") } f1()2.函数, 无参,有返回值 def ...原创 2019-10-18 11:23:58 · 213 阅读 · 0 评论 -
Java中"++"自增赋号运算符深入理解
Java中"="自增赋号运算符深入理解第一种理解方式第二种更加深入的理解方式让我们先来看一段代码:int i = 0 ;int j = i++;System.out.println(i);这个结果大家都知道是:0那么我们换一种写法:int i =0;i = i++;System.out.println(i);大家第一反应是不是以为运算结果还是 1 ?其实答案是:0...原创 2019-10-18 11:19:39 · 256 阅读 · 0 评论 -
如何修改String类型的字符串
如何修改String类型的字符串众所周知,String类型的字符串往往被写入常量池中,我们无法对其进行直接的修改,只能对其另外赋值比如:String s = " a b ";s.trim();System.out.println("!" + s + "!");得出的结论是! a b !这时,可能有人问当中不是有trim()对前后空格进行了剔除么,怎么回事?其实这个问题,不难...原创 2019-10-16 20:53:39 · 2700 阅读 · 2 评论 -
Scala打印字符串
Scala打印字符串基本语法正常打印换行打印基本语法(1)字符串,通过+号连接(2)printf用法:字符串,通过%传值。(3)字符串模板:通过$获取变量值正常打印打印字符串val username = "zhangdan"val userage = 20println("用户名称:"+username+",用户年龄:"+userage)Scala中简化了关于json的...原创 2019-10-16 20:16:46 · 774 阅读 · 0 评论 -
Scala的标识符命名规则
Scala的标识符命名规则Scala对各种变量、方法、函数等命名时使用的字符序列称为标识符。即:凡是自己可以起名字的地方都叫标识符。标识符(和java相同点)val name = "zhangsan"val name1 = "lisi"val na_me = "wangwu"val name$ = "zhangliu"val _name = ""val $name = ""标识...原创 2019-10-16 20:10:20 · 485 阅读 · 0 评论 -
Scala变量声明及至简原则
Scala变量声明及至简原则变量声明变量常量至简原则(能省就省,快乐编码)变量声明变量var i : Int = 10Scala声明变量需要使用关键字声明var 变量名称 : 变量类型 = 初始值Scala中要求变量声明后必须初始化var 声明变量,表示变量的值可以发生改变常量val j : String = "abd"val 变量名称:变量类型=初始值val声明变量,表...原创 2019-10-16 20:06:00 · 540 阅读 · 0 评论 -
Scala的main语法解析及伴生对象机制
Scala的main语法解析及伴生对象机制main语法: def main(args: Array[String]): Unit = {}解析:Scala main语法 : 方法名(参数列表):返回值类型 = {方法}main --> 方法名小括号 --> 参数列表参数声明方式:–>Java --> 类型 参数名–>Scala --> 参数...原创 2019-10-16 19:55:15 · 345 阅读 · 0 评论 -
Scala反编译
Scala反编译1)在项目的target目录Hello文件上点击右键->Show in Explorer->看到object底层生成Hello$.class和Hello.class两个文件2)采用Java反编译工具jd-gui.exe反编译代码,将Hello.class拖到jd-gui.exe页面...原创 2019-10-16 19:43:25 · 5857 阅读 · 1 评论 -
Scala的环境搭建及Idea的框架引入
Scala的环境搭建及Idea的框架引入安装步骤测试Idea中Scala插件安装插件离线安装步骤插件在线安装(可选)Maven中引入Scala框架安装步骤(1)首先确保JDK1.8安装成功(2)下载对应的Scala安装文件scala-2.11.8.zip(3)解压scala-2.11.8.zip,我这里解压到E:\02_software(4)配置Scala的环境变量注意1:解压路径不...原创 2019-10-16 19:39:47 · 754 阅读 · 0 评论 -
HashMap如何计算每个元素该放入的索引位置及kafka分区算法
HashMap如何计算每个元素该放入的索引位置及kafka分区算法HashMap底层的运用算法索引算法算法解析举例一举例二结论大数据衍生HashMap底层的运用算法索引算法int index = Hash(key.Hashcode) & (table.length - 1)算法解析Hash --> Java的Hash算法(固定算法)key.Hashcode -->...原创 2019-10-16 19:30:17 · 1223 阅读 · 1 评论 -
在极限状态下,HashMap放多少数组会变成红黑二叉树?
在极限状态下,HashMap放多少数组会变成红黑二叉树?回答问起前,我们先回顾下HashMapHashMap底层是数组+链表的方式HashMap具有唯一性每个链条默认情况下在放入第九个元素后,该链条就会自动从Node变成TreeNode但情况真的是这样吗?我们可以使用java来进行验证public class TextMap { public static void mai...原创 2019-10-16 19:05:28 · 3361 阅读 · 4 评论