![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java核心技术卷I
文章平均质量分 73
光阴不负卿
进击的程序员
展开
-
一文读懂java泛型
java泛型:Java泛型是JDK 5中引入的一个新特性,泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质时参数化类型,也就是说所操作的数据类型被指定为一个参数。为什么要使用泛型程序设计:泛型程序设计意味着编写的代码可以被很多不同类型的对象所重用。假如我们有这样一个需求:编写一个排序方法,能够对整型数组、字符串数组甚至其他任何类型的数组进行排序,该如何实现?答案就是使用泛型。使用java泛型的概念,可以写一个泛型方法来对一个对象数组排序。然后,调原创 2020-12-28 22:24:03 · 143 阅读 · 0 评论 -
一文读懂java内部类
内部类概述:简单来说,内部类就是定义在另一个类中的类。而,需要内部类的主要原因有以下三点:内部类方法可以访问该类定义在所在的作用域中的数据,包括私有数据 内部类可以对同一个包中的其他类隐藏起来 当想要定义一个回调函数且不想编写大量代码时,使用匿名内部类比较便捷内部类基础:广泛意义上的内部类一般包括四种:成员内部类 局部内部类 匿名内部类 静态内部类成员内部类:成员内部类时最普通的内部类,它的定义位于另一个类的内部,形如下面的形式:class Circle {原创 2020-12-28 21:13:59 · 163 阅读 · 0 评论 -
java高级特性lambda表达式详解
Lambda表达式,也可称为闭包,它是java 8中最重要的新特性。它允许把函数作为一个方法的参数(函数作为参数传递进方法中)。lambda表达式采用一种简洁的语法定义代码块,它是一个可传递的代码块,可以在以后执行一次或多次。lambda表达式的语法格式如下:(parameters) -> expression//或者(parameters) -> { statements; }lambda表达式特征:可选类型声明:不需要声明参数类型,编译器可以统一识别参数值 可选的原创 2020-12-26 21:54:18 · 333 阅读 · 0 评论 -
java对象克隆详解
先来看一下为一个包含对象引用的变量建立副本时会发生什么。原变量和副本都是同一个对象的引用,如图,这说明,任何一个变量改变都会影响另一个变量。Employee original = new Employee("John Public", 50000)Employee copy = original;copy.raiseSalary(10); // oops--also changed original如果希望copy是一个新对象,它的初始状态与original相同,但是之后它们各自会有.原创 2020-12-26 20:46:27 · 142 阅读 · 0 评论 -
java接口与抽象类详解
接口的概念:在java程序设计语言中,接口不是类,而是对类的一组需求描述,这些类要遵从接口描述的统一格式进行定义。编写接口的方式和类很相似,但是它们属于不同的概念,类描述对象的属性和方法。接口则包含类要实现的方法。除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。另外,在Java中,接口类型可用来声明一个变量,它们可以成为一个空指针,或是被绑定在一个以此接口实现的对象。接口与类的区原创 2020-12-26 20:11:53 · 170 阅读 · 0 评论 -
java继承的设计技巧
1、将公共操作和域放在超类2、不要使用受保护的域有些人认为,将大多数的示例域定义为protected是一个不错的主意,只有这样,子类才能够在需要的时候直接访问它们。然而,protected机制并不能够带来更好的保护,其原因主要有两点:子类集合是无限制的,任何一个人都能够由某个类派生一个子类,并编写代码直接访问protected的实例域,从而破坏了封装性。 在java程序设计语言中,在同一个包中的所有类都可以访问proteced域,而不管它是否为这个类的子类。不过,protected方法对于指原创 2020-12-24 15:52:26 · 169 阅读 · 0 评论 -
java高级特性---反射机制详解
反射机制:javai反'z射机h制是在运机制行状态中,对于任意一个类,都能够知道这个类的所有属性和方法 ;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。简单来说,能够分析类能力的程序称为反射。反射的功能:在运行时判断任意一个对象所属的类 在运行时构造任意一个类的对象 在运行时判断任意一个类所具有的成员变量和方法 在运行时调用任意一个对象的方法 生成动态代理反射的用途:在日常的第三方应用开发过程中,经常会遇到原创 2020-12-24 13:06:57 · 179 阅读 · 0 评论 -
java继承详解
继承的概念:继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。何时使用继承:假设你在某个公司工作,这个公司中经理的待遇与普通员工的待遇存在着一些差异。不过,他么之间也存在着相同的地方,例如,他们都领薪水。只是普通雇员在完成本职任务之后仅领取薪水,而经理在完成了预期的业绩之后还能得到奖金。这种情形就需要使用继承。这是因为需要为经理定义一个新类Ma原创 2020-12-24 11:02:13 · 117 阅读 · 0 评论 -
java方法参数、重载与构造器
方法参数有两种调用类型,一是按按值调用,表示方法接收的是调用者提供的值。二是引用调用,表示方法接收的是调用者提供的变量地址。方法可以修改传递引用所对应的变量值,而不能修改传递值调用所对应的变量值。java程序设计语言 总是采用按值调用,也就是说,方法得到的是所有参数值的一个拷贝,特别是,方法不能修改传递给它的任何参数变量的内容。 public static void raiseSalary(int salary) { salary += 10000; Syst原创 2020-12-23 10:34:50 · 288 阅读 · 4 评论 -
使用LocalDate类显示当前月的日历
程序关键步骤:首先构造一个日历对象,并用当前的日期和时间进行初始化LocalDate date = LocalDate.now();// 获得当前的月和日int month = date.getMonthValue();int today = date.getDayOfMonth();将date设置为这个月的第一天,并得到这一天为星期几// set to start of monthdate = date.minusDays(today - 1);DayOfWeek weekd原创 2020-12-22 22:33:34 · 2793 阅读 · 0 评论 -
java类之间的关系
在类之间,最常见的关系有:依赖(“uses-a”) 聚合(“has-a”) 继承(“is-a”)依赖(dependence),即“uses-a”关系,是一种最明显的、最常见的关系。例如,订单(Order)类使用账户(Account)类是因为Order对象需要访问Account对象查看信用状态。但是商品(Item)类不依赖于Account类,这是因为Item对象于客户无关。因此,如果一个类的方法操纵另一个类的对象,我们就说一个类依赖于另一个类。应尽可能地将相互依赖的类减至最少。如果类A不知道B的原创 2020-12-22 22:06:29 · 104 阅读 · 0 评论 -
类设计技巧:如何使得设计出来的类更具OOP的专业水准
1、一定要保证数据私有这是最重要的,绝对不要破坏封装性。当数据保持私有时,它们的表示形式的变化不会对类的使用者产生影响,即使出现bug也易于检测。2、一定要对数据初始化java不对局部变量进行初始化,但是会对对象的实例域进行初始化。最好不要依赖于系统的默认值,而是应该显式地初始化所有的数据,具体的初始化方式可以是提供默认值,也可以是在构造器总设置默认值。3、不要在类中使用过多的基本类型就是说,用其他的类代替多个相关的基本类型的使用。这样会使类更加易于理解且易于修改。例如,可以用一个称为A原创 2020-12-22 21:13:56 · 91 阅读 · 0 评论