java 静态内部类特点】的更多相关文章

内部类是指在一个外部类的内部再定义一个类.内部类作为外部类的一个成员,并且依附于外部类而存在的.内部类可为静态,可用protected和private修饰(而外部类只能使用public和缺省的包访问权限).内部类主要有以下几类:成员内部类.局部内部类.静态内部类.匿名内部类 为什么需要内部类? 典型的情况是,内部类继承自某个类或实现某个接口,内部类的代码操作创建其的外围类的对象.所以你可以认为内部类提供了某种进入其外围类的窗口.使用内部类最吸引人的原因是:每 个内部类都能独立地继承自一个(接口的…
目的 为什么会有这篇文章呢,是因为我在学习各种框架的时候发现很多框架都用到了这些内部类的小技巧,虽然我平时写代码的时候基本不用,但是看别人代码的话至少要了解基本知识吧,另外到底内部类应该应用在哪些场合,我并不是很清楚,留下一些值得思考的问题作为记录,说不定以后能自己来填.于是就会有这篇文章啦. 常规使用方法我也不想介绍,网上一大把,我就说说比较容易错的,值得注意的地方. 注意 这篇文章只是分享一下我对内部类的一些研究与困惑吧,说不定对大家有帮助,说不定能引导大家一起思考学习.Java语法知识其实…
在Java世界里,经常被提到静态这个概念,static作为静态成员变量和成员函数的修饰符,意味着它为该类的所有实例所共享,也就是说当某个类的实例修改了该静态成员变量,其修改值为该类的其它所有实例所见. 1.静态内部类的作用就是为了给外部类单独使用,所以无需再创建一个额外的类 2.静态内部类只能访问静态的成员和方法,不能访问非静态的 3.静态内部类可以直接实例化,如Inner i=new Inner();,而非静态内部类则需要外部类的对象去创建内部类实例. 静态内部类的特点就个静态成员已经静态方法…
参考文章:[https://www.cnblogs.com/maohuidong/p/7843807.html] 前言: 在看单例模式的时候,在网上找帖子看见其中有一种(IoDH) 实现单例的方式,其中用到了静态内部类,文章中有写到当jvm加载外部类的时候,并没有加载静态内部内这和之前自己想的不一样,特意在网上找了一些帖子总结一下. 一.学习前千的疑问: 稍微了解Java虚拟机内的加载过程的步骤,都很清楚,一个类的静态资源.一些常量都是在类加载的时候就被加载金内存中分配空间了,所以我一开始理所当…
转自:http://blog.sina.com.cn/s/blog_605f5b4f0100zbps.html 参考:http://docs.oracle.com/javase/tutorial/java/javaOO/nested.html 参考:http://stackoverflow.com/questions/16999611/hashmap-this-clear-what-does-this-mean-how-does-this-work static class 静态类(Java)…
Java语言允许在类中再定义类,这种在其它类内部定义的类就叫内部类.内部类又分为:常规内部类.局部内部类.匿名内部类和静态嵌套类四种. 1.静态内部类定义 静态内部类,定义在类中,任何方法外,用static定义:静态内部类只能访问外部类的静态成员. 生成(new)一个静态内部类不需要外部类成员:这是静态内部类和成员内部类的区别.静态内部类的对象可以直接生成:Outer.Inner in=new Outer.Inner():而不需要通过生成外部类对象来生成.这样实际上使静态内部类成为了一个顶级类.…
内部类其实并不是非要声明成static的..主要还是要看实际情况决定..静态和非静态有不同的作用.. 引用一篇文章给楼主参考下吧. 在一个类中创建另外一个类,叫做成员内部类.这个成员内部类可以静态的(利用static关键字修饰),也可以是非静态的.由于静态的内部类在定义.使用的时候会有种种的限制.所以在实际工作中用到的并不多.  在开发过程中,内部类中使用的最多的还是非静态地成员内部类.不过在特定的情况下,静态内部类也能够发挥其独特的作用.  一.静态内部类的使用目的.  在定义内部类的时候,可…
内部类可以是静态(static)的,可以使用 public.protected 和 private 访问控制符,而外部类只能使用 public,或者默认. 成员式内部类 在外部类内部直接定义(不在方法内部或代码块内部)的类就是成员式内部类,它可以直接使用外部类的所有变量和方法,即使是 private 的.外部类要想访问内部类的成员变量和方法,则需要通过内部类的对象来获取. public class Outer{ private int size; public class Inner { pub…
1.静态内部类可以在外部类的静态成员中访问或者实例化(非静态内部类不可以)---优势 2.静态内部类可以访问外部类的静态成员不可以访问非静态成员(非静态内部类可以访问类的静态和非静态成员)---限制 3.静态内部类可以申明静态成员(非静态内部类则不可以申明静态成员) 4.在外部类外创建该外部类的内部静态类,不用依附于外部类的实例(而非静态内部类则需要依赖于外部类的实例)…
静态内部类(嵌套类)的对象除了没有对生成它的外部类对象的引用特权外,与其他所有内部类完全一样. 在内部类不需要访问外部类时,应该使用静态内部类(嵌套类). 与常规内部类不同的是,静态内部类可以拥有静态域和方法. 在接口中声明的内部类自动成为static和public类.…
最近遇到的一个问题,记录一下. 静态内部类可以被实例化! 1.首先在外部类中的static方法中不能使用普通内部类,因为内部类必须要与外部类建立关联才能使用,可以说是同生共死. 2.我在编码过程中,需要2个类共同完成一个功能,其中一个工具类只会被用来完成这个功能,所以我选择将这个类作为内部类,但是这个内部类与外部类又没有直接的关联(使用普通内部类,我需要new一个外部类,通过外部类才能new一个内部类,这样显然不合适),所以我选择使用静态内部类. 3.关于静态内部类的对象:首先多次new是在堆中…
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/cd18333612683/article/details/79129503什么是内部类大部分时候,类被定义成一个独立的程序单元.在某些情况下,也会把一个类放在另一个类的内部定义,这个定义在其他类内部的类就被称为内部类(有些地方也叫做嵌套类),包含内部类的类也被称为外部类(有些地方也叫做宿主类) 作用??更好的封装性内部类成员可以直接访问外部类的私有数据,因为内部类被当成其外部类成员,但外部类不能访…
public class StaticInnerClass {        int x=100;    static class inner{        void doitInner()        {            System.out.println("外部类+"+x);        }//错误的,因为x 不是静态变量,所以在方法中不能用 doitInner方法不能X变量.                                            }…
最近在看单例模式的实现,看到有一种利用JAVA静态内部类的特性来实现,对于内部类我还真是不了解,遂了解了一下,代码贴上. /** * 内部类分为:成员内部类.局部内部类.匿名内部类和静态内部类. */ public class Demo { /* * 1.成员内部类:成员内部类是最普通的内部类, * 它的定义为位于另一个类的内部. */ class Inside1 { public void say() { System.out.println("Inside1 say..."); }…
一◐ java概述                                                                                        1.1 Java的不同版本:J2SE.J2EE.J2ME的区别                                                  1998年12月,SUN公司发布了Java 1.2,开始使用“Java 2” 这一名称,目前我们已经很少使用1.2之前的版本,所以通常所说的Ja…
注: 转载于http://blog.csdn.net/jiangxinyu/article/details/8177326 Java语言允许在类中再定义类,这种在其它类内部定义的类就叫内部类.内部类又分为:常规内部类.局部内部类.匿名内部类和静态嵌套类四种.我们内部类的知识在Android手机开发中经常用到. 一.常规内部类 所谓常规内部类,或者说内部类,指的就是除去后面三种之外的内部类(这算什么解释...) 先写一个最简单的内部类的例子,大家感觉一下: public class Outer {…
(本文整理自很久以前收集的资料(我只是做了排版修改),作者小明,链接地址没有找到,总之感谢,小明) (后面也对"静态内部类"专门做了补充) 内部类的位置: 内部类可以作用在方法里以及外部类里,作用在方法里称为局部内部类,作用在外部类里分为实例内部类和静态内部类. 外部类和内部类的类访问修饰符: 外部类可以是public和默认的,内部类可以是public,private,protected类型的 内部类和外部类的关系: *在[实例内部类中] A:内部类可以访问外部类中所有的任何访问修饰符…
关键字static作用如下: 1. 为某个基本数据类型或对象分配单一的存储空间. 2. 实现某个属性或方法与类关联.在类被加载后类名可以直接调用静态成员方法(下面简称静态方法)或者访问静态成员变量(下面简称静态成员变量).对象也可以做到. 有4种使用情况: 1. 静态属性即静态成员变量 2. 静态方法 3. 静态代码块 4. 静态成员类 静态方法 因为静态方法不依赖于对象,所以静态方法内部不能使用this.因为非静态方法和非静态成员变量依赖于对象,所以静态方法内部不能调用非静态方法或者访问非静态…
Java中的面向对象 概念:面向对象的原本的意思是“”万物皆对象“” 面向对象思想的特点: 是一种更符合我们思想习惯的思想,将复杂的事情简单化 使我们角色发生了转换,将我们从执行者变成了指挥者 面向对象的特征: 封装(Encapsulation) 继承(Inheritance) 多态(Polymorphism) 一些专业性的词汇: 面向对象的分析(OOA,Object Oriented Analysis) 面向对象的设计(OOD,Object Oriented Design) 面向对象的编程实现…
前言 近间陆续面试了不少的求职的前(JAVA).后(WEB)端开发人员,包括实习生.应届毕业生.一两年工作经验的.也有三四年工作经验的,也算见过了比较多的开发人员,想在这里做个总结,本次主要讲一讲面试和后端(java)相关的东西: 关于面试准备 先推荐一个写的不错的博客,专门关于面试的,比较详尽仔细:关于面试.我在这里简单总结几点: 1.简历要用心准备好,个人信息,特别是联系方式一定要清晰明确,自身掌握的技能要完成清晰,项目经历最好按照时间顺序,说明本人在项目中的职责,完成的工作,有什么样的提升…
1. Java 知识点总结 Java标示符.保留字和数制:https://www.cnblogs.com/jssj/p/11114041.html Java数据类型以及变量的定义:https://www.cnblogs.com/jssj/p/11116347.html Java变量的声明.初始化和作用域:https://www.cnblogs.com/jssj/p/11122585.html Java常量的申明和使用:https://www.cnblogs.com/jssj/p/11134301…
华为优招面试经验. 1.笔试(这部分按照华为以前的风格不会为难人的,认真做AC一道题就可以进面试了,我编程能力一般吧,做了一道半而已,-_-||!) 2.测评(性格测试,不要太偏激就行了) 3.面试分为业务面和综合面两面,业务面就是技术面,综合面就问的比较杂了,我选的岗位是IT软件开发,下面分享一下我依稀记得面试题目:大家接好了! 4.录用签约 5.入职 1 2 3 4 5 我是8月17参加的面试,当天我还迟到了2分钟,让我去的东门,好不容易才找到,其实去南门进去就是了,可能他们考虑人分流的原因…
单例模式的特点 一个类只允许产生一个实例化对象. 单例类构造方法私有化,不允许外部创建对象. 单例类向外提供静态方法,调用方法返回内部创建的实例化对象.  懒汉式(线程不安全) 其主要表现在单例类在外部需要创建实例化对象时再进行实例化,进而达到Lazy Loading 的效果. 通过静态方法 getSingleton() 和private 权限构造方法为创建一个实例化对象提供唯一的途径. 不足:未考虑到多线程的情况下可能会存在多个访问者同时访问,发生构造出多个对象的问题,所以在多线程下不可用这种…
[第一部分] 面试要领[第1题] 流程必知必会[第2题] JDK源码[第二部分] 类和对象[第二篇] 面向对象基础[第1题] 面向对象是什么?[第2题] 类加载的过程[第3题] 类加载器有哪些[第4题] 双亲委派模式[第5题] 编写自己的类加载器[第6题] 对象的创建[第7题] jvm的优化[第8题] 什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?[第9题] JDK和JRE的区别是什么?[第10题] ”static”关键字是什么意思?Java中是否可以覆盖(override…
1. 功能介绍 1.1 Android Universal Image Loader Android Universal Image Loader 是一个强大的.可高度定制的图片缓存,本文简称为UIL. 简单的说 UIL 就做了一件事--获取图片并显示在相应的控件上. 1.2 基本使用 1.2.1 初始化 添加完依赖后在Application或Activity中初始化ImageLoader,如下: public class YourApplication extends Application…
在Java设计模式中,单例模式相对来说算是比较简单的一种构建模式.适用的场景在于:对于定义的一个类,在整个应用程序执行期间只有唯一的一个实例对象.如Android中常见的Application对象. 通过单例模式,自行实例化并向这个系统提供这个单一实例的访问方法. 根据此单一实例产生的时机不同(当然,都是指第一次,也是唯一一次产生此单一实例时),可以将其分为懒汉式.饿汉式和登记式. 一.懒汉式: 其特点是延迟加载,即当需要用到此单一实例的时候,才去初始化此单一实例.常见经典的写法如下: pack…
前言 近日,看到Myabtis中组件中SqlSessionFactory由SqlSessionFactoryBuilder().build()生成时,且采用Builder模式,遂记录学习之. SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); 1.什么是Builder模式? (1)对于复杂的对象,如果只是用构造方法创建的话,构造方法中会存在很多的逻辑,那么我们可以一步步有…
前提准备: 1.hadoop安装运行正常.Hadoop安装配置请参考:Ubuntu下 Hadoop 1.2.1 配置安装 2.集成开发环境正常.集成开发环境配置请参考 :Ubuntu 搭建Hadoop源码阅读环境 MapReduce编程实例: MapReduce编程实例(一),详细介绍在集成环境中运行第一个MapReduce程序 WordCount及代码分析 MapReduce编程实例(二),计算学生平均成绩 MapReduce编程实例(三),数据去重 MapReduce编程实例(四),排序 M…
第八章 面向对象编程-高级8.1 静态属性和静态方法8.1.1 静态属性-提出问题8.1.2 基本介绍8.1.3 伴生对象的快速入门8.1.4 伴生对象的小结8.1.5 最佳实践-使用伴生对象解决小孩游戏问题8.1.6 伴生对象-apply 方法8.2 单列对象8.3 接口8.3.1 回顾 Java 接口8.3.2 Scala 接口的介绍8.3.3 trait 的声明8.3.4 Scala 中 trait 的使用8.4 特质 trait8.4.1 特质的快速入门案例分析8.4.2 代码完成8.4…
参考 [1] 设计模式之:创建型设计模式(6种) | 博客园 [2] 单例模式的八种写法比较 | 博客园 单例模式(Singleton  Pattern) 确保一个类有且仅有一个实例,并且为客户提供一个全局访问点. 特点 1) 保证被访问资源对象在内存中只有一个实例,节约了系统内存资源,也避免了对资源多重占用: 2) 封装了访问实例方法,提供全局访问点,严格控制客户的访问方式: 3) 通常常驻内存,不会频繁创建/销毁,节约了系统开销: 缺点 1) 没有抽象层,难以扩展: 2) 类的职责过重,往往…