Java语言允许在类中再定义类,这种在其它类内部定义的类就叫内部类。内部类又分为:常规内部类、局部内部类、匿名内部类和静态嵌套类四种。

1、静态内部类定义

静态内部类,定义在类中,任何方法外,用static定义;静态内部类只能访问外部类的静态成员。

生成(new)一个静态内部类不需要外部类成员:这是静态内部类和成员内部类的区别。静态内部类的对象可以直接生成:Outer.Inner in=new Outer.Inner();而不需要通过生成外部类对象来生成。这样实际上使静态内部类成为了一个顶级类。可以定义私有静态内部类。

2、java实现静态内部类注意事项

将某个内部类定义为静态类,跟将其他类定义为静态类的方法基本相同,引用规则也基本一致。不过其细节方面仍然有很大的不同。具体来说,主要有如下几个地方要引起注意。

1)一般情况下,如果一个内部类不是被定义成静态内部类,那么在定义成员变量或者成员方法的时候,是不能够被定义成静态成员变量与静态成员方法的。也就是说,在非静态内部类中不可以声明静态成员

2)一般非静态外部类可以随意访问其外部类的成员变量以及方法(包括声明为private的方法),但是如果一个内部类被声明为static,则其在访问包括自身的外部类会有诸多的限制。静态内部类不能访问其外部类的非静态成员变量和方法

3)在一个类中创建非静态成员内部类的时候,有一个强制性的规定,即内部类的实例一定要绑定在外部类的实例中。然后要在一个外部类中定义一个静态的内部类,不需要利用关键字new来创建内部类的实例。即在创建静态类内部对象时,不需要其外部类的对象

3、静态内部类示例

java在实现LinkedList时使用了如下内部类:

public class LinkedList

extends AbstractSequentialList

implements List, Deque, Cloneable, java.io.Serializable

{

........

private static class Entry {

E element;

Entry next;

Entry previous;

Entry(E element, Entry next, Entry previous) {

this.element = element;

this.next = next;

this.previous = previous;

}

}

private Entry addBefore(E e, Entry entry) {

Entry newEntry = new Entry(e, entry, entry.previous);

newEntry.previous.next = newEntry;

newEntry.next.previous = newEntry;

size++;

modCount++;

return newEntry;

}

........

}

这里即静态内部类的典型用法

静态内部类实现mysql连接_Java - 静态内部类相关推荐

  1. mysql odbc连接池_Java Mysql连接池配置和案例分析--超时异常和处理

    前言: 最近在开发服务的时候, 发现服务只要一段时间不用, 下次首次访问总是失败. 该问题影响虽不大, 但终究影响用户体验. 观察日志后发现, mysql连接因长时间空闲而被关闭, 使用时没有死链检测 ...

  2. java 获取mysql链接_Java中如何获取mysql连接的3种方法总结

    前言 本文主要来说说三种 Java 中获取 mysql 连接的方式,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 第一种:传统的连接方式: 第二种:读取配置文件方式: 第三种:数据库 ...

  3. java mysql 配置_Java连接MySQL数据库详细分析

    一:工具 eclipse MySQL5.7 MySQL连接驱动:mysql-connector-java-5.1.44-bin.jar下载地址 二:加载驱动 2.1 在工程目录中创建lib文件夹,将下 ...

  4. mysql的左右连接 分页_Java 与 Mysql连接,并分页显示

    这是我第一个上规模的Java项目,我们必须在一周内完成的作业,零基础学习Java,网上收集了很多资料,逐渐对面向对象的思想有所了解,但还是半灌水,后期打算结合项目系统地学习一遍Java.老师布置的任务 ...

  5. mysql killed进程不结束_php和mysql连接方式(短 长 池)

    一个php work进程只能处理一个请求,当完成一个请求了,才能处理下一次的请求 2.短连接: 执行到php关闭mysql连接的代码时,就断开,否则在处理本次请求结束的时候,释放mysql连接 实验: ...

  6. php mysql 连接不上_PHP: 连接状态 - Manual

    连接状态 插件改变了 PHP MySQL 连接的控制,新建连接会从一个连接池中获取,用于替代 client-server 的单一连接方式.连接池包含一组 master 连接,和可选数目的 slave ...

  7. nginx和mysql链接_nginx转发mysql连接

    场景: 访问UAT环境,只能使用客户电脑访问,太难用了,于是就需要在自己电脑上跑代码,通过客户电脑中转来访问uat环境的数据库. 选用nginx进行转发.配置如下: stream { upstream ...

  8. 批量 杀掉 mysql 连接_批量杀死MySQL连接的几种方法

    方法一 通过information_schema.processlist表中的连接信息生成需要处理掉的MySQL连接的语句临时文件,然后执行临时文件中生成的指令. mysql> select c ...

  9. 【腾讯二面】5s内建立多少个mysql连接?

    牛牛在2020年面试腾讯时面试官问过这样一个场景: 以100每秒的速度向mysql写数据,持续5s,此时我们的程序和mysql建立了多少个tcp连接? 从编程的角度来看,一个问题的解答过程,无非是寻求 ...

最新文章

  1. liunx tar安装mysql_在Linux下,安装Mysql(tar)
  2. 浅析C#中的套接字编程
  3. Ubuntu16.04手工搭建emscripten编译环境
  4. Linux0.00 代码解析(二)
  5. 【S4 导数据】S/4HANA导数,只会LSMW远远不够(转)
  6. CH - 0501 货仓选址(中位数)
  7. .NET World——gPRC概览
  8. 常用JavaScript函数 1 - 15 (自我总结)
  9. Java反射机制(Reflection)
  10. 自己常用的PHP方法
  11. 仿QQ锁屏界面消息提示
  12. 数理统计-5.3 统计量及其分布
  13. 布加迪奇龙Blender雕刻、shading,并导入Three.js ,3DWEB模型【Three.js+Blender建模+web前端+可视化】
  14. 大数据-HDFS 文件副本和 Block 块存储
  15. 用PYTHON做一个动态钟表
  16. C#实现微信自动回复机器人和微信支付
  17. 使用BS4爬取智联招聘
  18. 2021年开源愿景大揭秘
  19. 云天视界传媒浅谈无人机航拍技巧
  20. 【四】头歌平台实验-确定性推理

热门文章

  1. android 揭示动画_揭示垃圾收集暂停的时间长度
  2. 没有垃圾回收的JVM
  3. update se_Java SE 7 Update 25 –发行说明进行了解释。
  4. java ee cdi_Java EE CDI程序化依赖关系消歧示例–注入点检查
  5. arrays.sort(._Arrays.sort与Arrays.parallelSort
  6. 测试驱动开发 测试前移_测试驱动陷阱,第2部分
  7. activemq和jms_保证主题,JMS规范和ActiveMQ的消息传递
  8. java云端部署_Jelastic Java云端平台
  9. jsf集成spring_Spring和JSF集成:动态导航
  10. 使用Spring MVC进行资源版本控制