一个利用Java的IO类进行文件读取的例子: package cn.tzy import java.io....reader = new BufferedReader(new FileReader(FILE_PATH)) var line: Option[String] = None // 保存每一行的文本...Scala中无参函数调用的时候可以省略括号 2. Scala中推荐使用Option类,而不是Java中的obj != null这样的判断
java提供了endorsed技术: 关于 endorsed :可以的简单理解为 -Djava.endorsed.dirs 指定的目录面放置的jar文件,将有覆盖系统API的功能。...但是能够覆盖的类是有限制的,其中不包括java.lang包中的类(出于安全的考虑)。 为什么必须使用 endorsed 进行替换 jdk 中的类呢?...因为java是采用双亲委派机制进行加载class类的。而jdk提供的类只能由类加载器Bootstrap进行加载。...如果你想要在应用程序中替换掉jdk中的某个类是无法做到的,所以java提供了endorsed来达到你想要替换到系统中的类。...示例 修改java.util.ArrayList类中的 get(int index) 方法,在该方法中添加输出获取的值信息,如果是字符串直接输出,如果不是则输出类信息,及加载该元素类的classloader
伴生类和伴生对象 设计初衷 由于static定义的类和对象破坏了 面向对象编程的规范完整性,因此scala 在设计之初就没有static关键字概念,类相关的静态属性都放在伴生对象object中。...简单理解:object就是java中的static部分,定义的是类中静态属性。...其中伴生类和伴生对象需要同名。 在Scala里,类和伴生对象之间没有界限——它们可以互相访问彼此的private字段和private方法。...scala中伴生类&伴生对象的语法如下: class AssociatedDemo { val a:Int = 10; var b:Int = 2; } object AssociatedDemo...case class中默认有apply()来负责对象的创建,不需要new来实例化。 类似于Java 开发中的entity类,属于一种特殊的类,其中属性不可变,且均为public。
Scala 类相关 终于来到面向对象的地方了,虽说函数式编程是 Scala 的特性,让人们觉得 Scala 是更好的 Java。但是在架构层面上一直提倡着:小处用函数式编程,大处用面向对象编程。...构造器 在 java 中定义一个简单的用户类,以及构造函数 public class User { private String name; private String password...中,只需一代码即可跟上面的 Java 代码等价。...单例对象、伴生对象、Case Class、Trait 2.1 单例对象 在Scala学习笔记(二)中,讲述过Scala 中没有静态修饰符 static,在 object 下的成员全部都是静态的,而且 object...继承 像 Java 一样,Scala 只支持单一继承,而不是多重继承。 总结 本篇内容只是 Scala 类相关内容的开头,后续会陆续整理。
13.11 Scala混用Java的集合类调用scala的foreach遍历问题 问题描述 [ERROR] /Users/jack/book/lightsword/src/main/scala/com/...Scala中操作Java集合 两种情况需要在Scala中操作Java集合。...Scala调用Java库 为了享用Scala提供的集合特性,在Scala程序中若要调用Java库,通常需要将其转换。...然后我们在service代码中,应该这样调用: val userRoles = userRoleDao.listByUserId(user.id) // Scala中调用java的collection...类,使用scala的foreach,编译器会提示无法找到result的foreach方法。
一、前述 Scala Trait(特征) 相当于 Java 的接口,实际上它比接口还功能强大。 模式匹配机制相当于java中的switch-case。...使用了case关键字的类定义就是样例类(case classes),样例类是种特殊的类。 Actor相当于Java中的多线程。...一般情况下Scala的类可以继承多个Trait,从结果来看就是实现了多重继承。Trait(特征) 定义的方式与类类似,但它使用的关键字是 trait。...2、举例:trait中带属性带方法实现 继承的多个trait中如果有同名的方法和属性,必须要在类中使用“override”重新定义。 trait中不可以传参。...2、什么是Akka Akka 是一个用 Scala 编写的库,用于简化编写容错的、高可伸缩性的 Java 和Scala 的 Actor 模型应用,底层实现就是Actor,Akka是一个开发库和运行环境
,但是前端目前只要求传入什么就修改什么,没有传入的默认不修改,意思就是只修改部分字段内容,所以需要我后端先根据ID查询信息然后再修改就要使用到克隆对象忽略Null值,目前这个工具类就可以实现。...CopyUtils工具类代码: /** * CopyUtils * * @author lcry * @date 2019/09/19 17:31 * 对象互相拷贝忽略Null值 */ public...getNullPropertyNames(Object source) { final BeanWrapper src = new BeanWrapperImpl(source); java.beans.PropertyDescriptor...src.getPropertyDescriptors(); Set emptyNames = new HashSet(); for (java.beans.PropertyDescriptor...CopyUtils.copyProperties(desinfo, employee); employeeDao.save(employee); } } 可以自行做测试,比BeanUtils中拷贝对象更好使用
一、前述 Scala中的函数还是比较重要的,所以本文章把Scala中可能用到的函数列举如下,并做详细说明。 二、具体函数 1、Scala函数的定义 ?...scala中函数有返回值时,可以写return,也可以不写return,会把函数中最后一行当做结果返回。当写return时,必须要写函数的返回值。...,则传入的数值会覆盖默认值。 ...如果不想覆盖默认值,传入的参数个数小于定义的函数的参数,则需要指定参数名称。...** * 包含默认参数值的函数 * 注意: * 1.默认值的函数中,如果传入的参数个数与函数定义相同,则传入的数值会覆盖默认值 * 2.如果不想覆盖默认值,传入的参数个数小于定义的函数的参数
java的重载、覆盖和隐藏的区别 http://blog.csdn.net/yangquanhui1991/article/details/49679557 重载:方法名相同,但参数不同的多个同名函数...覆盖不同于静态方发的隐藏,父类中被隐藏的方法在子类中完全不可用,而父类中被覆盖的方法在子类中可以通过其他方式被引用。...子类实例变量/静态变量可以隐藏父类的实例/静态变量,总结为变量可以交叉隐藏 隐藏和覆盖的区别: 被隐藏的属性,在子类被强制转换成父类后,访问的是父类中的属性 被覆盖的方法,在子类被强制转换成父类后...隐藏与覆盖成员变量 如果子类中的变量和父类中的变量具有相同的名字,那么子类中的变量就会隐藏父类中的变量,不管他们的类型是什么,也不管他们是类变量还是实例变量。 ...覆盖不同于静态方发的隐藏,父类中被隐藏的方法在子类中完全不可用,而父类中被覆盖的方法在子类中可以通过其他方式被引用。
参考链接: Java中方法重载的不同方法 一....方法重载(overload) /* * 方法重载的判定:同一类中,方法名相同,参数列表不同(参数个数不同,参数列表中对应位置参数类型不同),其他方法返回值 * 和访问修饰符都随意。 ...,不管是否进行了参数顺序的改变,最后在方法记录的过程中, // 还是会记录成上面报错信息提示的那样,而这个参数列表与第一个函数的参数列表一模一样。 ...方法重写(覆盖) 方法重写也叫方法覆盖,表示子类要对父类的某一方法进行修改,方法的重写比较简单,通常遵循以下原则: 1. 两同:方法名和方法参数列表相同 2....一大: 子类中的重写方法的访问权限大于等于父类中的方法 3. 二小:子类中的重写方法抛出的异常类型要小于等于父类;子类中的重写方法的返回值类型小于等于父类
在java中用来描述具有共同性质的一组事物的自定义的复合数据类型—类。 复合数据类型的本质—【根据自己的需求制作自己需要的数据类型的模式/规则/公式】 4.2.如何编写一个Java类?...{ } 4.3.Java类中可以编写什么?...基本属性——变量 基本功能—–方法 变量–是用来在类中描述事物的基本属性 方法–是用来在类中描述事物的基本功能 4.4.Java类中变量的分类及其基本特征?...变量—保存数据 1.数据类型【不一定就是之前的基本数据类型,也有可能是自定义的复合数据类型】 2.变量名称【合法标识符–全字母小写】 3.初始值 4.作用域 按照在类中编写变量的位置划分...在同一个类中成员变量与某一个方法中的局部变量的名称相同,这是我们在方法中使用这个成员变量的时候,得到的结果是局部变量的值,此时就是方法中的局部变量将类中成员变量的值隐藏了,这就是成员变量的隐藏。
Scala中的类和对象:定义、创建和使用 在Scala编程语言中,类和对象是重要的概念。类是对象的蓝图,而对象是类的一个具体实例。...本文将介绍如何在Scala中定义类、创建对象以及访问对象的属性和方法,并通过具体的代码和运行结果进行演示。...定义类和创建对象 在Scala中,我们使用class关键字来定义类,并使用new关键字来创建类的对象。...在Scala中,主构造函数可以直接在类定义中声明。 让我们来看一个示例,演示如何在类中定义构造函数。...在上述代码中,我们在Person类的定义中添加了一个打印语句,用于在创建对象时打印一条消息。然后,我们创建了一个Person对象,并调用了greet方法来打印问候语。
今天来聊聊从java文件到class文件,最后class文件是怎么到JVM中的。 ?...然后把HelloWorld.class文件加载到JVM中的整个过程: 1,装载。...查找和导入class文件 通过一个类的全限定名获取定义此类的二进制字节流 将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构 在Java堆中生成一个代表这个类的java.lang.Class对象...优势Java类随着加载它的类加载器一起具备了一种带有优先级的层次关系。...比如,Java中的Object类,它存放在rt.jar之中,无论哪一个类加载器要加载这个类,最终都是委派给处于模型最顶端的启动类加载器进行加载,因此Object在各种类加载环境中都是同一个类。
在Scala里存在样例类。它的意义是为了减少重复代码,预先给类定义一些常用的方法。在Scala里使用case关键字来描述样例类。...scala> case class Test(name:String) defined class Test scala> val t = Test("a") t: Test = Test(a) scala...> t.name res0: String = a scala> t res1: Test = Test(a) 样例类t可以不使用new关键字就可以创建一个实例,并且构造参数在实例化的时候,就会分配给构造参数一个同名属性...,与一般的类不一样的是,样例类会覆写toString方法,使其返回的更加“正常”。...样例类最大的用途就是用于模式匹配,SparkSQL的解析器就是利用了Scala的模式匹配,大量简化了语法的解析。
Data类 Data类中常用方法 boolean after(Date date) 若当调用此方法的Date对象在指定日期之后返回true,否则返回false。...String toString( ) 把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon...LocalDate类 上面我们了解了Date类,我们知道,他是一个比较老的类,且不是线程安全的,所以,我们目前基本上是使用他的升级版LocalDate。...如今Java8提供了LocalDate、LocalTime、LocalDateTime三个日期时间类,在安全性和操作性上对比Date和Calendar非常可观。...其次呢,从下面这张图,也就是我们上面运行输出的对比中,可以看出来,Date类的可读性很差。
Java中异常处理有两种方式 try...catch和finally概述 finally重要面试题 三、Scala中的异常机制 ---- Scala中的异常机制语法处理上和 Java 类似,但是又不尽相同...中的异常机制 Java中异常处理有两种方式 在方法声明的位置上,使用throws关键字,抛给上一级。...Scala 的异常的工作机制和 Java 一样,但是 Scala 没有“checked(编译期)”异常,即 Scala没有编译异常这个概念,异常都是在运行的时候捕获处理。...因此,在 catch 子句中,越具体的异常越要靠前,越普遍的异常越靠后,如果把越普遍的异常写在前,把具体的异常写在后,在 Scala 中也不会报错,但这样是非常不好的编程风格。...中异常机制分享的内容到这里就结束了,与Java异常机制相比较确实有很多灵活的地方,希望对大家有所帮助!!!
常量 类型 数组 列表 元组 对象及样例类 四、声明变量中的模式匹配 五、for表达式模式匹配 六、偏函数模式匹配 ---- 本次主要分享Scala中关于模式匹配的内容,Scala中的模式匹配类似于Java...中的switch语法,但是Scala在基于Java的思想上补充了特有的功能。...如果所有 case 都不匹配,那么会执行 case _分支,类似于 Java 中 default 语句。...样例类仍然是类,和普通类相比,只是其自动生成了伴生对象,并且伴生对象中自动提供了一些常用的方法,如 apply、unapply、toString、equals、hashCode 和 copy。...样例类是为模式匹配而优化的类,因为其默认提供了 unapply 方法,因此,样例类可以直接使用模式匹配,而无需自己实现 unapply 方法。
StringTokenizer是字符串分隔解析类型,属于:Java.util包。...java默认的分隔符是“空格”、“制表符(‘\t’)”、“换行符(‘\n’)”、“回车符(‘\r’)”。...方法被调用的次数。...String nextToken(String delim):与4类似,以指定的分隔符返回结果。...st.nextToken()); } } public static void main(String[] args) { String s=new String("The=Java
它构成了 Java Cryptographic Extension (JCE) 框架的核心。...处理 input 缓冲区中的字节,并将结果存储在新的缓冲区中。 如果 input 长度为 0,则此方法返回 null。...处理 input 缓冲区中从 inputOffset 开始(包含)的前 inputLen 个字节,并将结果存储在 output 缓冲区中。...注:此方法应该是复制安全 (copy-safe) 的,这意味着 input 和 output 缓冲区可引用相同的 byte 数组,并且在将结果复制到输出缓冲区时,不会覆盖任何未处理的输入数据。...处理在上一次 update 操作中缓存的输入数据,其中应用了填充(如果请求)。结果将存储在新缓冲区中。 结束时,此方法将此 Cipher 对象重置为上一次调用 init 初始化得到的状态。
Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。...import java.lang.*; public class TestMath { public static void main(String[] args) { System.out.println...78 两者之间较小的:56 随机数:0.8657276690731889 幂:1024.0 向上取整:19.0 向下取整:18.0 四舍五入:12 四舍五入:-11 Math类的round方法,它表示...log(double a) 返回 double 值的自然对数(底数是 e)。 log10(double a) 返回 double 值的底数为 10 的对数。...acos(double a) 返回一个值的反余弦;返回的角度范围在 0.0 到 pi 之间。 asin(double a) 返回一个值的反正弦;返回的角度范围在 -pi/2 到 pi/2 之间。
领取专属 10元无门槛券
手把手带您无忧上云