Java基础冷知识

2023-11-06

<一> 全局变量和局部变量的区别

      1.位置不一样

          全局变量存在类下面,局部变量存在方法里面。

            全局变量的生命周期和对象有关,局部变量的生命周期和方法有关。

      2.修饰符

            全局变量是可以加修饰符的。局部变量不可以。

      3.默认值问题

             全局变量只声明是可以直接使用的,有默认值,局部变量不可以。

<二> 为什么在静态的方法里面不能使用非静态的成员

     1. 因为静态的方法是随着类的加载而进入内存的,非静态的成员是创建对象之后进入存的,

     2. 当静态的方法在内存的时候,非静态的成员还不存在,所以没办法使用。

<三> 静态变量和非静态变量的区别

     1.静态的变量时随着类的加载而进入内存的,非静态的方法是随着对象的创建进入内存的。

     2.静态的方法里面只能使用静态的变量。

     3.静态的变量多了一种调用方式,可以通过类名.属性名字直接调用。

<四> 封装:

     将实现的细节因隐藏起来,提供共有的方法访问。

     属性的封装的步骤:

          1.将属性都定义成私有的,

          2.提供setter和getter方法

          3.在方法中添加判断语句   

<五> 访问修饰符的权限

      1.public 公共访问权限  所有的类都能访问

      2.protected 子类访问权限   在同一个包 子类都可以访问

      3.缺省的  包访问权限  在同一包可以访问

      4.private 类访问权限  只有本类能够访问

<六> 包:

      当前类在哪一个包的下面: package 包名字

      当前类调用其它包下的类:import 包的名字       

<七> 继承:

     当子类继承父类,子类能够使用父类可见所有的属性和方法

        1.父类私有的属性和方法是不能访问的。

        2.不同包下,父类缺省的属性和方法是不能访问的。    

<八> 子类创建对象的顺序:

      1.先调用子类的构造器

      2.然后调用父类的构造器

      3.父类信息初始化(有的话)

      4.父类的对象创建完成

      5.子类信息初始化(有的话)

      6.最后子类的对象创建完成。

<九> this

      当前调用的方法所在的类的对象的引用

      一般情况下都可以省略。

      特别:

         1.当局部变量和全局变量名字一样的时候,使用全局变量的时候this不能省略。

         2.this不能使用在静态的方法里面。

     this只能使用的在非静态的方法中(没有static修饰的方法中)

        如    int a = 10;

              public void show(){

                     int a = 100;

                     System.out.println("a=" +a);

                     System.out.println("全局变量a="+this.a);

              } //主函数省略

           //   a=100  全局变量a=10

<十> super

      当前调用的方法所在的类的父类对象的引用

           一般情况下都是省略的。

           特别:

           1.当子类的属性和方法与父类的属性和方法的名字是一样的时候,使用父类的属性方法super不能省略。

           2.super不能使用在静态的方法里面。

           3.当重新指定要调用的构造器的时候super(参数列表)不能省。

<十一> 成员内部类

        位置类的成员位置。

        特点:

        1.可用private protected修饰的。

        2.可以直接访问类的属性和方法。

        3.其它外部类访问内部类

           内部类  别名 = new 外部类.new 内部类();

 <十二> 局部内部类:

        位置:定义在方法里面。

        特点:

        1.不能用访问修饰符或者static来修饰。

        2.生命周期和方法有关,只能在本方法里面使用。

        3.当局部内部类要使用所在的方法的局部变量或者参数的时候,这些变量要定义成final类型的。

<十三>GC出现的原因:

       1.查询的数据库没有关闭游标;

       2.构造Adapter时,没有使用缓存ConvertView

       3.没有及时释放对象的引用

       4.Bitmap对象不再使用时没有及时调用recycle()释放内存

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java基础冷知识 的相关文章

  • 序列化 ArrayList

    我正在尝试编写一个 Android 游戏 即使用户想要返回主菜单或者活动被系统终止 我也希望能够暂停游戏 onSaveInstanceState 似乎并没有给我很大的控制权来决定何时可以读回捆绑包 而且据我所知 捆绑包仅在短时间内有效 所以
  • 配置 Eclipse 将 App Engine 类预先捆绑到单个 JAR 中以加快预热速度

    在与另一家同样使用 App Engine 的公司的同事进行讨论后 他告诉我 他通过以下步骤成功地将应用程序预热时间从约 15 秒缩短到约 5 秒 配置 Eclipse 将编译过程中生成的类捆绑到单个 JAR 文件中 配置 Eclipse 以
  • 在 Gradle 中运行自定义测试任务而无需重新编译

    我有一个 Gradle 自定义测试任务来运行我的集成测试 我希望能够在 Gradle 不自动完成之前的所有阶段并仅运行测试的情况下运行它 有没有办法在每个构建步骤不使用 x 的情况下执行此操作 None
  • 如何创建仅接受字母数字字符的正则表达式? [复制]

    这个问题在这里已经有答案了 可能的重复 字母数字和下划线的正则表达式 https stackoverflow com questions 336210 regular expression for alphanumeric and unde
  • 在 JList 中写一些东西

    嘿 我还有另一个问题 我创建JList在我的主窗口中 现在我想向其中添加一些内容 我这样做 private void jButton2ActionPerformed java awt event ActionEvent evt Dodaj
  • bean 的 CDI @TransactionAttribute

    我正在尝试CDI在测试应用程序上 我有一个DAO它注入一个托管的容器JTA像这样的持久化上下文 public class TestDAO implements Serializable PersistenceContext private
  • 竞争条件和 Clojure Atoms

    clojure atom 的文档指出 Changes to atoms are always free of race conditions 然而 竞争条件不仅是根据更改定义的 而且是在不同线程中并行逻辑操作的上下文中定义的 我想知道 保证
  • 如何从 Java 生产代码中删除调试语句

    编译器是否可以从生产代码中删除用于调试目的 例如日志记录 的语句 调试语句需要以某种方式进行标记 可能使用注释 设置属性 debug true 并在每个调试语句中检查它很容易 但这会降低性能 如果编译器能够简单地使调试语句消失 那就太好了
  • 字符串 a == 字符串 b 的规则 [重复]

    这个问题在这里已经有答案了 我试图了解字符串池的工作原理以及一个字符串等于另一个字符串的规则是什么 例如这个片段 public static void main String hi String s1 lol String s2 lol S
  • 覆盖乔达一周的第一天?

    是否有可能覆盖乔达弱的第一天sunday 因为 Joda 使用Monday作为一周的第一天 如果有办法的话 谁能解释一下 我在 SOF 中提到了以下主题 乔达时间 一周的第一天 https stackoverflow com questio
  • 基于磁盘的 HashMap [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Java 是否有 或者是否有可用的库 允许我拥有基于磁盘的 HashMap 它不需要是原子的或任何东西
  • org.apache.poi 中的异常

    我试图编写一个可以读取和写入的程序 xlsx文件中 下面提供的代码旨在能够编写其第一个 Excel 程序 package excel reader import java io FileOutputStream import java io
  • 更改JavaFX TableView字体大小[重复]

    这个问题在这里已经有答案了 您好 我想在表视图列内的文本上设置字体 我如何用 Java 做到这一点 这是我的代码 感谢帮助 private final TableView
  • SFTP Java - 管道关闭 Jsch 异常

    我正在研究一种 java 方法 将文件从一个位置复制到另一个远程位置 我的代码如下 我尝试使用jsch 0 1 42 0 1 50 0 1 54 public static void processFiles ArrayList
  • 在 Hibernate 的 XML 配置文件中指定默认值

    我通过映射配置文件配置 Hibernate
  • C# 动态 Linq 变量Where 子句

    我正在按照 Scott Gu 的文章创建动态 LINQhttp weblogs asp net scottgu archive 2008 01 07 dynamic linq part 1 using the linq dynamic qu
  • java.lang.IllegalStateException:FragmentManager 已被销毁

    活动中onResume我称之为 volley request 的方法 它获取项目列表 然后将它们加载到此活动内的 ListFragment 中 当我第一次进入活动时 一切正常 但当我重新进入活动时 ListFragment 为空 并且控制台
  • Java 中有类似 .NET 的 NotImplementedException 的东西吗?

    有没有类似 NET 的东西NotImplementedException在Java中 康芒斯朗 http commons apache org proper commons lang javadocs api 2 6 org apache
  • 原子整数的compareandexchange()与compareandset()

    在研究 AtomicInteger 时 我发现这个 API 提供了两种方法 比较和交换 如果当前值被引用 则自动将该值设置为 newValue to 作为见证值 预期值 记忆效应为 由指定VarHandle compareAndExchan
  • 当框架被拖动时,如何设置 JWindow 的位置位于文本字段下方?

    我正在制作一个自动完成项目 就像谷歌一样 我的框架中有一个 jtextfield 每当我在该字段中输入内容时 该文本字段下方就会出现一个 JWindow 并且该窗口来自另一个类 现在的问题是 每当我拖动框架时 如何使窗口始终出现在文本字段下

随机推荐

  • Redis学习记录(二)

    redis命令 基本命令 心跳命令 ping 读写键值命令 set get DB切换 select 数据库切换 查看数据库中的key数量 dbsize 删除当前库中的数据 flushdb 删除所有库中的数据 flushall 退出客户端命令
  • 【语义分割】DFANet -- Deep Feature Aggregation for Real-Time Semantic Segmentation

    efficient inferrence speed and high accuracy with high resolution Architecture DFANet从整体上可看做是encoder decoder结构 包括四个部分 th
  • sklearn中的XGBClassifier参数详解

    前言 1 Xgboost简介 Xgboost是Boosting算法的其中一种 Boosting算法的思想是将许多弱分类器集成在一起 形成一个强分类器 因为Xgboost是一种提升树模型 所以它是将许多树模型集成在一起 形成一个很强的分类器
  • Linux内核模块管理(查看、添加和删除)

    Linux 的内核会在启动过程中自动检验和加载硬件与文件系统的驱动 一般这些驱动都是用模块的形式加载的 使用模块的形式保存驱动 可以不直接把驱动放入内核 有利于控制内核大小 模块的全称是动态可加载内核模块 它是具有独立功能的程序 可以被单独
  • Java多线程问题--wait()和notify()

    本文内容部分引自 Java多线程编程核心技术 感谢作者 代码地址 https github com xianzhixianzhixian thread git 介绍wait 和notify 的使用以及注意事项 1 wait 方法是Objec
  • 图像相似度的评价指标 : FID(Fréchet Inception Distance)

    FID Fr chet Inception Distance 是用来计算真实图像与生成图像的特征向量间距离的一种度量 如果FID值越小 则相似程度越高 最好情况即是FID 0 两个图像相同 实际计算 参考链接 https machinele
  • 一个石头剪刀布游戏的python解法

    一个石头剪刀布的python解法 import random game 石头 剪刀 布 随机生成一个1 3之间的数 random digit random randint 1 3 输入你猜测的数 num int input 请输入1 2 3
  • RHEL5.6 下安装并测试openCV1.0.0(----成功----)

    一 首先去openCV官网下载openCV1 0 0版本 貌似需要翻墙后才能下载 二 解压源码包并安装 configure without python enable shared prefix opt opencv make make i
  • C++ 多线程 报错invalid use of non-static member function

    创建一个类test class test public void func std cout lt lt test main函数多线程调用test test t new test std thread th t gt func 编译报错 G
  • visual studio用环境变量设置目录

    visual studio里可以用环境变量来指定包含目录等目录
  • 程序的动态特性

    程序的动态特性 大多数情况下 程序的功能是在编译的时候确定下来的 称之为静态特性 而如果程序的功能是在运行时才确定的称为动态特性 动态特性是面向对象语言最强大的功能之一 它在语言层面上支持程序的可扩展性 动态特性 由C 虚函数 抽象基类 动
  • 基于朴素贝叶斯的垃圾分类算法(Python实现)

    一 模型方法 本工程采用的模型方法为朴素贝叶斯分类算法 它的核心算法思想基于概率论 我们称之为 朴素 是因为整个形式化过程只做最原始 最简单的假设 朴素贝叶斯是贝叶斯决策理论的一部分 所以讲述朴素贝叶斯之前有必要快速了解一下贝叶斯决策理论
  • 【Android Studio】配置国内镜像源(利用hosts)

    之前我写过直接用国内镜像的IP地址端口进行配置国内镜像的 如下链接 Android studio配置国内镜像源 但是这种方法不一定在每台电脑上的每次配置都行得通 因此给出第二种方法 给系统文件 hosts 添加国内的镜像 虽然 可能 也不一
  • 云服务器 ECS > 快照 > 快照概述

    快照概述 更新时间 2020 07 01 20 40 29 编辑我的收藏 本页目录 应用场景 快照类型 计费 使用限制 优势 相关操作 联系我们 阿里云快照可以为所有类型的云盘创建崩溃一致性快照 是一种便捷高效的数据容灾手段 常用于数据备份
  • Qt自定义sink风格按钮

    为了满足工作中控件多样性的要求 一些控件的风格需要通过重写画家事件的方式进行自定义 实现sink风格按钮的效果图如下 纯代码实现思路 产生按钮下沉的效果是利用了视觉误差原理 通过更改背景颜色以及图标的位置 呈现出按钮动态改变的效果 按钮未按
  • 【Sonar技术债务解】Null pointers should not be dereferenced

    SonarLint Null pointers should not be dereferenced A NullPointerException could be thrown getReauestAttributes0y can ret
  • 计算机桌面颜色怎么换,电脑桌面字体颜色怎么改

    大家好 我是时间财富网智能客服时间君 上述问题将由我为大家进行解答 电脑桌面字体颜色修改的方法是 1 首先 打开电脑 在桌面空白处点击鼠标右键 点击 个性化 点击打开 2 在窗口中选择 窗口颜色 点击打开 3 在窗口中选择 高级外观设置 点
  • Ubuntu18.04安装ROS+gazebo9

    https blog csdn net qq 35683407 article details 106064918 1 安装ros Ubuntu18 04选择ROS Melodic 教程网址 http wiki ros org cn mel
  • 如何排查 IDEA 自身报错?

    这个问题是 2023 年 7 月 26 日遇到的 当时还是 IDEA 2023 1 4 结果文章还没写完 7 月 27 日自动给更新了 IDEA 2023 2 问题估计解决了 所以 本文就简单提一下 IDEA 自身报错的排查方法 规避 解决
  • Java基础冷知识

    lt 一 gt 全局变量和局部变量的区别 1 位置不一样 全局变量存在类下面 局部变量存在方法里面 全局变量的生命周期和对象有关 局部变量的生命周期和方法有关 2 修饰符 全局变量是可以加修饰符的 局部变量不可以 3 默认值问题 全局变量只