JavaSE 之 final 初探】的更多相关文章

我们先看一道面试题: 请问 final 的含义是什么?可以用在哪里?其初始化的方式有哪些? 首先我们回答一下这道题,然后再探究其所以然.  1.final 表示“最终的”.“不可改变的”,意指其修饰类不可以被继承或修饰的属性的值不可改变. 2.final 既可以修饰类,也可以修饰属性. 3.final 变量可以直接初始化值,也可以在构造方法中初始化值,但是二者只可选其一. 好了!现在我们已经知道了答案了,那咱们就来一一验证吧! 1.直接初始化属性值,类不可被继承: package com.smb…
2017-08-04 JAVAse 1.final修饰符 final可以修饰类,成员方法,成员变量(static 修饰符不可以修饰类) final的初始化在对象被实例化前即可final 修饰的方法不可以被继承: final修饰的变量是常量[值不能被修改],(自定义型) final修饰的方法不能被重写 2.this与super的用法及其区别 this:用于本类的引用 应用场景:封装(在本类中区分形参和私有属性) super:用于父类的引用 应用场景:继承(在子类中调用父类非私有成员) this s…
一.static修饰符 1.1.static变量 在类中,使用static修饰的成员变量,就是静态变量,反之为非静态变量. 静态变量和非静态变量的区别            静态变量属于类的,"可以"使用类名来访问,非静态变量是属于对象的,"必须"使用对象来访问. public class Student{ private static int age; private double score; public static void main(String[] a…
一.说明 final属于一种修饰符,可以用于修饰类和属性.方法.局部变量 二.特点 1.修饰类 该类不能被继承,如String.Integer等 2.修饰方法 该方法不能被重写 3.修饰变量(属性和局部变量) 该变量的值不能被修改,也就是变成了常量 (1)特点 如果是引用类型的常量,则地址不能更改,但属性可以更改 如果是基本类型的常量,则值不能更改 (2)常量属性的注意事项 ①常量属性必须在最开始初始化 普通常量属性:声明时或普通初始化块或构造器时初始化 静态常量属性:声明时或静态初始化块 ②常…
一.final 修饰变量,被final修饰的变量在被赋初始值之后,不能对它重新赋值 修饰实例变量,必须显示指定初始值,可以在三个位置指定初始值:         1.定义final实例变量时指定初始值         2.在非静态初始化块中为final变量指定初始值         3.在构造器中为final实例变量指定初始值     对于final实例变量,这三种方式都会被抽取到构造器中赋初始值   修饰类变量,同样必须显示指定初始值,可以在两个位置指定初始值:         1.定义类变量…
static :静态常量,静态方法,静态代码块     静态变量:  静态变量属于类的,使用类名来访问,非静态变量是属于对象的,"必须"使用对象来访问.           注意:静态变量对于类而言在内存中只有一个,能被类中所有的实例共享. 实例变量对于类的每一个实例都有一份,         它们之间互不影在加载类的过程中为静态变量分配内存,实例变量在创建对象时分配内存        所以静态变量可以使用类名来直接访问,而不需要使用对象来访问. package com.len.col…
个人博客网:https://wushaopei.github.io/    (你想要这里多有) 1.面向对象的特性之:多态性 多态性的理解:事物的多种形态 1.1 广义上多态性的体现:①方法的重写,重载. ②子类对象的多态性 1.2 狭义上多态性的体现:①子类对象多态性 1.3 何为子类对象多态性:父类的引用指向子类的对象 1.4 多态性的应用:  虚拟方法调用:编译看左边,运行看右边  编译时:只能看到父类中的方法和属性  运行时:调用的是子类重写的父类的方法 1.5 多态性的说明:   思考…
在进行一些MaterialDesign规范开发的时候,比如之前说到的CoordinateLayout实现的向上折叠效果的时候,如果依然使用ListView,那么这种效果是做不出来的,因为ListView不兼容这个控件,而替代它的就是RecyclerView. 和ListView的区别: ①RecyclerView只关心item的重用和缓存 ②RecyclerView不关心item的分隔风格(交给ItemDecoration) ③RecyclerView不关心item的动画(交给ItemAnima…
  文章地址:Android热修复之微信Tinker使用初探 前几天,万众期待的微信团队的Android热修复框架tinker终于在GitHub上开源了. 地址:https://github.com/Tencent/tinker 官方介绍:https://my.oschina.net/shwenzhang/blog/751618 接入指南:https://github.com/Tencent/tinker/wiki/Tinker-%E6%8E%A5%E5%85%A5%E6%8C%87%E5%8D…
编程语言的发展: 机器语言——直接由计算机的指令组成,指令.地址.数据都是以"0"和"1"的符号串组成,可以被计算机直接执行. 汇编语言——用容易理解和记忆的符号表示指令.数据和寄存器等,抽象层次很低,程序员需要考虑大量的机器细节. 高级语言——屏蔽了机器细节,提高了语言的抽象层次,更加接近于自然语言,60年代出现的结构化编程设计语言提出了结构化数据和语句,数据和过程抽象等概念. 面向对象的语言——与以往的各种语言不同,他的设计出发点就是为了更能直接的描述问题域中客…
Java Lambda表达式初探 前言 本文受启发于Trisha Gee在JavaOne 2016的主题演讲Refactoring to Java 8. Java 8已经发行两年多,但很多人仍然在使用JDK7.对企业来说,技术上谨慎未必是坏事,但对个人学习而言,不去学习新技术就很可能被技术抛弃.Java 8一个重要的变更是引入Lambda表达式(lambda expression),这听起来似乎很牛,有种我虽然不知道Lambda表达式是什么,但我仍然觉得很厉害的感觉.不要怕,具体到语言层面上La…
第一部分,JAVA基础和面向对象 part01 入门与开发环境搭建 1: 计算机基础知识(了解)(1)计算机(2)计算机硬件(3)计算机软件系统软件:windows,linux,mac应用软件:QQ,YY,扫雷,CS/F(4)软件开发就是用开发工具和计算机语言做出软件(5)计算机语言人与计算机的交流方式(6)人机交互A:图像界面方便,简单,直观.B:DOS 窗口方式要有控制台, 要记住很多的命令, 麻烦.(7)键盘功能键和快捷键的介绍(掌握)A:键盘功能键tabshiftctrlalt空格ent…
关于myeclips提示The serializable class XXX does not declare a static final serialVersionUID field of type long的警告 我们在用eclips/myeclips的时候,会出现这个warning,比如在用hibernate时,自动生成表的对应类后,就有这个提示.这是为什么呢? 这与jdk的版本没关系,那是Eclipse提供的功能. 你点它warning的icon两下Eclipse就会自动给定,如果你不…
JavaSe基础 1. 九种基本数据类型的大小,以及他们的封装类 boolean 无明确指定 Boolean char 16bits Character byte 8bits Byte short 16bits Short int 32bits Integer long 64bits Long float 32bits Float double 64bits Double void Void 2. switch能否用string做参数? 参数必须是int或char那样的整数值 字符串或浮点数不可…
二.Final 核心:一旦创建,不可修改 可修饰:(创建即终态) 1.类:被修饰后,将不能被继承 2.方法:被修饰后,将不能被覆写 3.属性:被创建,不可修改,且必须赋值(赋值的两种形式): 1.直接 2.构造函数赋值 ps: a .可与static一起修饰属性和方法 b.修饰原生类型时是确定其值不变,引用类型时是其引用地址不可更改 三.Abstract package com.jacob.javase; /*  * 修饰符:  * Abstract:  * 核心:只创建不实现,由子类实现  *…
三个修饰符: 一.static: 作用域: 1. 属性 1.1 静态属性不必要创建新对象,可直接用类调用 1.2 其值发生改变,则类中的值也会随之而变并延伸到其他对象中 例子: class Animals { // /1.static 修饰属性 static String a = "静态属性值"; String b = "非静态属性值"; } Animals  ani=new Animals (); ani.a="修改"; ani.b="…
  第九天    50 1. final关键字(掌握)    50 (1)定义:    50 (2)特点:    51 (3)面试相关:    51 A:final修饰的局部变量    51 B:final修饰变量的初始化时机    51 2. 多态(掌握)    51 (1)多态的定义:    51 (2)多态的前提:    51 (3)多态中的成员访问特点    52 (4)多态的好处:    52 (5)多态的弊端:    52 (6)多态中的转型    52 A:向上转型    52 B…
Spring入门(9)-AOP初探 0. 目录 什么是面向切面编程 AOP常见术语 AOP实例 参考资料 1. 什么是面向切面编程 Aspect Oriented Programming(AOP),即面向切面编程.AOP主要实现的目的是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果.最常见的就是日志记录.举个例子,我们现在提供一个服务查询学生信息服务,但是我们希望记录有谁进行了这个查询.如果按照传统的OOP的实现的话,那我们…
今天给大家介绍下Android中滑屏功能的一个基本实现过程以及原理初探,最后给大家重点讲解View视图中scrollTo 与 scrollBy这两个函数的区别 . 首先 ,我们必须明白在Android View视图是没有边界的,Canvas是没有边界的,只不过我们通过绘制特定的View时对 Canvas对象进行了一定的操作,例如 : translate(平移).clipRect(剪切)等,以便达到我们的对该Canvas对象绘制的要求 , 我们可以将这种无边界的视图称为“视图坐标”-----它不受…
数据类型 8种基本数据类型和引用类型 数据类型 占用位数 存储方式 最小值 最大值 默认值 byte 8 1+7 -128(-2^7) 127(2^7-1) 0 short 16 1+15 -32768(-2^15) 32767(2^15-1) 0 int 32 1+31 -2147483648(-2^31) 2147483647(2^31-1) 0 long 64 1+63 -2^63 2^63-1 0L float 32 1实数符号位+1指数符号位+7指数位+23实数位 (与整数不同,符号位…
1. 为什么需要多线程下载?     服务器的资源有限,同时的平均地分配给每个客户端.开启的线程越多抢占的服务的资源就越多,下载的速度就越块. 2. 下载速度的限制条件? (1)你的电脑手机宽带的带宽.(网络运营商给用户的限制) (2)服务器上传的带宽限制. (服务器端资源获取速度的限制)----迅雷, p2p快播等下载,可以同时间使用多台服务器帮助用户下载资源,速度自然会加快. 注意:并不是开的线程越多下载速度越快,可能会消耗大量时间在线程调度上. Android下推荐开启: ~ 线程. 3.…
/* * 接口 * 引用数据类型: * 类,接口,数组; * * 接口是一种引用数据类型,可以看作是一个特殊的类,它存在的目的是为了解决没有多重继承引起的功能弱的问题而设计的,一个类只能有一个父类,但是这个类却可以实现多个接口; * * 接口还可以看作是只有抽象方法的类,即接口的所有方法都必须被实现; * 接口声明的关键字是interface,代替了class;而普通类的继承关键字extends也变成了implements(实现); * 但是其作用和普通类中是一样的,只不过是为了区分而已; *…
/* * 抽象类 * 抽象: * 面向对象的三大核心思想; * 封装: 封装,ppp是封装的一部分 * 继承; * 多态: 父类的引用指向子类的对象 * 引用: 是指一个引用型变量 * 有哪些变量? * 成员变量; * 构造方法的局部变量; * 普通方法的局部变量; * 立马声明立马使用的变量; * 静态变量; * 什么是抽象类? * 就是用abstract关键字修饰的类就叫抽象类; * 什么是抽象方法? * 没有方法体的方法叫抽象方法,连{}都没有;抽象方法必须在修饰符列表中加上abstrac…
  09.01 final关键字引入 例: class Fu { public final void show() { System.out.println("访问底层资源"); } } class Zi extends Fu { public void show() { System.out.println("Zi show run"); } } class Demo { public static void main(String[] args) { Zi z…
  12.01 Scanner的概述和构造方法原理 Scanner类概述:JDK5以后用于获取用户的键盘输入 构造方法:public Scanner(InputStream source) public static final InputStream in:“标准”输入流. 此流已打开并准备提供输入数据.通常,此流对应于键盘输入或者由主机环境或用户指定的另一个输入源. 12.02 Scanner类的hasNextXxx()和nextXxx()方法的讲解 基本格式: hasNextXxx():判…
背景:gRPC是一个高性能.通用的开源RPC框架,其由Google主要面向移动应用开发并基于HTTP/2协议标准而设计,基于ProtoBuf(Protocol Buffers)序列化协议开发,且支持众多开发语言.gRPC提供了一种简单的方法来精确地定义服务和为iOS.Android和后台支持服务自动生成可靠性很强的客户端功能库.客户端充分利用高级流和链接功能,从而有助于节省带宽.降低的TCP链接次数.节省CPU使用.和电池寿命. 以下初探编码过程: 1.安装插件Protobuf-dt最新版本,我…
接上一篇:初探Lambda表达式/Java多核编程[2]并行与组合行为 本节是第二章开篇,前一章已经浅显地将所有新概念点到,书中剩下的部分将对这些概念做一个基础知识的补充与深入探讨实践. 本章将介绍Lambda表达式基础知识. 前言 把上一张书中的结语放到这里作为本章学习内容的开头,以此来概括Lambda表达式的优点: 提升性能.自动的并行化 更棒的API(comparing(...)细粒度的方法将成为标准) 编码风格得到改进.代码简化 反观前面几篇文章中的代码实践,以上三个优点全部得到了验证.…
这周开学,上了两天感觉课好多,学校现在还停水,宿舍网络也还没通,简直爆炸,感觉能静下心看书的时间越来越少了...寒假还有些看过书之后的存货,现在写一点发出来.加上假期两个月左右都过去了书才看了1/7都不到...还得去续借一下,看来买书多看书少的毛病也得改一改,先致力于把剁手买的书啃完. 另外再次推荐下我现在看的这本书(详见第0篇),越看越费劲...干货非常多而且特别干,总之相比于其他书可以说是一页顶三页了,每一段都值得仔细琢磨,发现看不懂的还得调转方向先去填坑. 接上一篇:初探Lambda表达式…
之前匆匆忙忙学完了java,后来又接着学习ee,然而,越是想要快一点最后反而会更慢一点.因为匆忙间 我几乎什么都没学会.在后面的学习中实在非常吃力.就把javase 的视频大部分又重新看了一遍.真的收获挺大的.但是我有一个坏毛病,心浮气躁,还是在赶进度.于是好不容易理解的东西又快忘了.se已经复习完.赶快整理一下. 1.方法的重载: 方法的重载是方法名相同,方法的参数列表不同(参数的个数不同或者参数的类型不同,或者两者都不相同).与返回值类型无关. 这里可以想到:类的有参和无参构造方法就用到了重…
Thread初探 前言 以前大家写的都是单线程的程序,全是在main函数中调用方法,可以清楚的看到它的效率是特别低的,就像python中使用单线程取爬一个网站,可以说能让你等的吐血,因为数据量实在太大了,今天我们就来看看java的并发编程多线程的学习 创建线程 创建一个线程可以有多种方法,比如继承Thread类,实现Runnable接口......下面我们来详细的看看创建的方法 继承Thread 为什么继承Thread可以直接调用start()方法启动线程呢,因为start()本身就是Threa…