Java中特殊符号“.“的深入理解及protected的访问权限分歧 Java中特殊符号"."的深入理解及protected的访问权限分歧在深入理解前让我们看一段代码Q : 为什么会报错?A : 因为你在A的类中声明clone方法Q : 真的是因为这个原因吗?众所周知,所有的class类都是默认继承object类虽然clone()在Object中被protected修饰但根据protected的原理(同包同类子类中都能调用)这里的clone()应...
浅谈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 ...
Java中特殊符号"."的深入理解及protected的访问权限分歧 Java中特殊符号"."的深入理解及protected的访问权限分歧在深入理解前让我们看一段代码Q : 为什么会报错?A : 因为你在A的类中声明clone方法Q : 真的是因为这个原因吗?众所周知,所有的class类都是默认继承object类虽然clone()在Object中被protected修饰但根据protected的原理(同包同类子类中都能调用)这里的clone()应...
Scala中apply的用法 Scala中apply的用法Scala正常创建的对象object Scala08_Method { def main(args: Array[String]): Unit = { val user = new User08() }}class User08 { //类中的方法其实就是函数,所以声明方式和函数完全一样 def test(obj: Object...
Scala--包 Scala--包包的命名1)命名规则2)命名规范包说明(包语句)导包访问权限包对象包的命名1)命名规则只能包含数字、字母、下划线、小圆点.,但不能用数字开头,也不要使用关键字。2)命名规范一般是小写字母+小圆点com.公司名.项目名.业务模块名包说明(包语句)Scala有两种包的管理风格,一种方式和Java的包管理风格相同,每个源文件一个包(包名和源文件所在路径不要求必须一致),包...
Scala--惰性函数 Scala--惰性函数当函数返回值被声明为lazy时,函数的执行将被推迟,直到我们首次对此取值,该函数才会执行。这种函数我们称之为惰性函数。def main(args: Array[String]): Unit = { //惰性函数 //什么时候被调用,什么时候才执行 lazy val res = sum(10,30) println("-----------...
Scala--控制抽象 Scala--控制抽象控制抽象的基本原理:将函数的逻辑传给另一个函数的参数列表def foo(a : =>Unit):Unit={ a}foo(println("aaa"))好处在于自由在参数列表中写逻辑,给其他函数使用 def try1(a : =>Unit):Unit={ a } try1{ println("aaa...
Scala--递归 Scala--递归Java中递归需要注意的点:1.函数自己调用自己2.函数在调用自己时,应该有跳出的逻辑3.递归函数在调用时,应该有规律Scala也满足了这三点的同时,有增加了新特性要求递归函数必须显示声明返回值类型,如果不声明返回值类型,递归无法推断出类型def test(i: Int):Int = { if (i == 1) { 1 }else{ i * ...
浅谈-栈上分配和逃逸分析 浅谈-栈上分配和逃逸分析前体栈上分配逃逸分析情景一情景二前体分析结论前体让我们先来看一段代码String s = "a" + "b"请问这代码产生了几个对象?有的人可能会说3个有的人可能会说1个这里先不说答案,我们先回顾下什么是对象,对象放在哪里?一般情况下,我们把放在堆里面的称之为对象也就意味着对象只能放在堆里面其实并不是这样,对象其实并不是只能放在堆里面它也能放在栈里面...
Scala函数--函数式练习及柯里化函数的概念 Scala函数--函数式练习及柯里化函数的概念题目一: 用一个for写出一个三角形图案题目二:逆推 f(10)(20)() 公式 结果为200第一种写法第二种写法第三种写法柯里化函数举例疑问为什么f2可以使用x的值?闭包柯里化函数题目一: 用一个for写出一个三角形图案 def main(args: Array[String]): Unit = { for ( i <- 1 t...
Scala函数--高级函数式 Scala函数--高级函数式函数可以作为参数传递举例一举例二匿名函数Scala对匿名函数也遵循了至简原则如果不关心匿名名字,可以使用匿名函数简化参数的传递如果函数只有一行代码,可以省略大括号如果函数的类型可以确定,可以省略参数类型如果参数列表只有一个参数,可以省略小括号如果参数只有在逻辑中使用一次,那么参数可以省略,然后用下划线代替但注意至简匿名函数是有前提的(以举例三为例)正常情况下如果参数被使...
Scala函数--中级函数式--Scala中参数个数最大值为22个 Scala函数--中级函数式--Scala中参数个数最大值为22个 def main(args: Array[String]): Unit = {至简原则中级版函数式编程原版1.如果函数逻辑中需要返回结果,那么return关键字可以省略 可以将函数体中最后一行代码作为函数的返回结果2.如果可以通过返回值推断出返回值类型,那么返回值类型可以省略3.如果函数的主体内容只有一行代...
Scala函数-入门级函数式 Scala函数-入门级函数式def main(args: Array[String]): Unit = {函数 重要注意三点: 函数名,Input(传入参数),Output(返回值) 1.函数, 无参,无返回值 def f1(): Unit = { println("f1....") } f1()2.函数, 无参,有返回值 def ...
Java中"++"自增赋号运算符深入理解 Java中"="自增赋号运算符深入理解第一种理解方式第二种更加深入的理解方式让我们先来看一段代码:int i = 0 ;int j = i++;System.out.println(i);这个结果大家都知道是:0那么我们换一种写法:int i =0;i = i++;System.out.println(i);大家第一反应是不是以为运算结果还是 1 ?其实答案是:0...
如何修改String类型的字符串 如何修改String类型的字符串众所周知,String类型的字符串往往被写入常量池中,我们无法对其进行直接的修改,只能对其另外赋值比如:String s = " a b ";s.trim();System.out.println("!" + s + "!");得出的结论是! a b !这时,可能有人问当中不是有trim()对前后空格进行了剔除么,怎么回事?其实这个问题,不难...
Scala打印字符串 Scala打印字符串基本语法正常打印换行打印基本语法(1)字符串,通过+号连接(2)printf用法:字符串,通过%传值。(3)字符串模板:通过$获取变量值正常打印打印字符串val username = "zhangdan"val userage = 20println("用户名称:"+username+",用户年龄:"+userage)Scala中简化了关于json的...
Scala的标识符命名规则 Scala的标识符命名规则Scala对各种变量、方法、函数等命名时使用的字符序列称为标识符。即:凡是自己可以起名字的地方都叫标识符。标识符(和java相同点)val name = "zhangsan"val name1 = "lisi"val na_me = "wangwu"val name$ = "zhangliu"val _name = ""val $name = ""标识...
Scala变量声明及至简原则 Scala变量声明及至简原则变量声明变量常量至简原则(能省就省,快乐编码)变量声明变量var i : Int = 10Scala声明变量需要使用关键字声明var 变量名称 : 变量类型 = 初始值Scala中要求变量声明后必须初始化var 声明变量,表示变量的值可以发生改变常量val j : String = "abd"val 变量名称:变量类型=初始值val声明变量,表...
Scala的main语法解析及伴生对象机制 Scala的main语法解析及伴生对象机制main语法: def main(args: Array[String]): Unit = {}解析:Scala main语法 : 方法名(参数列表):返回值类型 = {方法}main --> 方法名小括号 --> 参数列表参数声明方式:–>Java --> 类型 参数名–>Scala --> 参数...
Scala反编译 Scala反编译1)在项目的target目录Hello文件上点击右键->Show in Explorer->看到object底层生成Hello$.class和Hello.class两个文件2)采用Java反编译工具jd-gui.exe反编译代码,将Hello.class拖到jd-gui.exe页面...