java static 静态方法的使用 注意事项

2023-11-09

定义为 static function1(),  function1() 中不能引用this或super.


在android 中这样用的话,会出现以下的报错


W/dalvikvm( 2783): JNI WARNING: instance fieldID 0x57ee6ab8 not valid for class Ljava/lang/Class;

W/dalvikvm( 2783):              in Lcom/tcl/media/TMediaPlayer;._setAudioTrack:(I)V (GetIntField)
I/dalvikvm( 2783): "main" prio=5 tid=1 RUNNABLE
I/dalvikvm( 2783):   | group="main" sCount=0 dsCount=0 obj=0x41e3f578 self=0x41e2a738
I/dalvikvm( 2783):   | sysTid=2783 nice=0 sched=0/0 cgrp=apps handle=1074913276
I/dalvikvm( 2783):   | state=R schedstat=( 2625678561 263517020 5312 ) utm=176 stm=85 core=1
I/dalvikvm( 2783):   at com.tcl.media.TMediaPlayer._setAudioTrack(Native Method)
I/dalvikvm( 2783):   at com.tcl.media.TMediaPlayer.setAudioTrack(TMediaPlayer.java:186)
I/dalvikvm( 2783):   at com.tcl.common.mediaplayer.video.contrl.IVideoPlayControlHandler.setAudioTrackNms(IVideoPlayControlHandler.java:1007)
I/dalvikvm( 2783):   at com.tcl.common.mediaplayer.video.UI.VideoAdvanceDialogActivity.onKeyDown(VideoAdvanceDialogActivity.java:117)
I/dalvikvm( 2783):   at android.view.KeyEvent.dispatch(KeyEvent.java:2960)
I/dalvikvm( 2783):   at android.app.Activity.dispatchKeyEvent(Activity.java:2389)
I/dalvikvm( 2783):   at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1861)
I/dalvikvm( 2783):   at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:3832)
I/dalvikvm( 2783):   at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3815)
I/dalvikvm( 2783):   at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3420)
I/dalvikvm( 2783):   at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3470)
I/dalvikvm( 2783):   at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3439)
I/dalvikvm( 2783):   at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3524)
I/dalvikvm( 2783):   at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3447)
I/dalvikvm( 2783):   at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3581)
I/dalvikvm( 2783):   at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3420)
I/dalvikvm( 2783):   at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3470)
I/dalvikvm( 2783):   at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3439)
I/dalvikvm( 2783):   at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3447)
I/dalvikvm( 2783):   at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3420)
I/dalvikvm( 2783):   at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3470)
I/dalvikvm( 2783):   at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3439)
I/dalvikvm( 2783):   at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3557)
I/dalvikvm( 2783):   at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:3707)
I/dalvikvm( 2783):   at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:1982)
I/dalvikvm( 2783):   at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:1698)
I/dalvikvm( 2783):   at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:1689)
I/dalvikvm( 2783):   at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:1959)
I/dalvikvm( 2783):   at android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:141)
I/dalvikvm( 2783):   at android.os.MessageQueue.nativePollOnce(Native Method)
I/dalvikvm( 2783):   at android.os.MessageQueue.next(MessageQueue.java:132)
I/dalvikvm( 2783):   at android.os.Looper.loop(Looper.java:124)
I/dalvikvm( 2783):   at android.app.ActivityThread.main(ActivityThread.java:5103)
I/dalvikvm( 2783):   at java.lang.reflect.Method.invokeNative(Native Method)
I/dalvikvm( 2783):   at java.lang.reflect.Method.invoke(Method.java:525)
I/dalvikvm( 2783):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:773)
I/dalvikvm( 2783):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:589)
I/dalvikvm( 2783):   at dalvik.system.NativeStart.main(Native Method)
I/dalvikvm( 2783): 

E/dalvikvm( 2783): VM aborting









以下转自:http://developer.51cto.com/art/200611/35011.htm

Java中static的作用

2006-11-20 18:18 鸟儿飞  Csdn博客  我要评论(0) 字号: T |  T

如果一个成员被声明为static,它就能够在它的类的任何对象创建之前被访问,而不必引用任何对象。你可以将方法和变量都声明为static。static 成员的最常见的例子是main( ) 。因为在程序开始执行时必须调用main() ,所以它被声明为static。

AD: 2013云计算架构师峰会课程资料下载

有时你希望定义一个类成员,使它的使用完全独立于该类的任何对象。通常情况下,类成员必须通过它的类的对象访问,但是可以创建这样一个成员,它能够被它自己使用,而不必引用特定的实例。在成员的声明前面加上关键字static(静态的)就能创建这样的成员。如果一个成员被声明为static,它就能够在它的类的任何对象创建之前被访问,而不必引用任何对象。你可以将方法和变量都声明为static。static 成员的最常见的例子是main( ) 。因为在程序开始执行时必须调用main() ,所以它被声明为static。

声明为static的变量实质上就是全局变量。当声明一个对象时,并不产生static变量的拷贝,而是该类所有的实例变量共用同一个static变量。声明为static的方法有以下几条限制:

◆它们仅能调用其他的static 方法。 
◆它们只能访问static数据。 
◆它们不能以任何方式引用this 或super

package com.birdme;
public class UseStatic {
/**
* @param args
*/
private static int s;   
public UseStatic(){
System.out.println("Create new Class");
}
static {
System.out.println("static block initialized");
}   
public int getStatic(){
return s;
}
public void  setStatic(int i){
s=i;
}

public static void main(String[] args) {
// TODO Auto-generated method stub
UseStatic classA= new UseStatic();
UseStatic classB= new UseStatic();
System.out.println("classA.s="+classA.getStatic()+";classB.s=

"+classB.getStatic());
classA.setStatic(10);
System.out.println("classA.s="+classA.getStatic()+";classB.s=

"+classB.getStatic());
classB.setStatic(classB.getStatic()+10);
System.out.println("classA.s="+classA.getStatic()+";classB.s=

"+classB.getStatic());
}
}

下面是该程序的输出:

static block initialized
Create new Class
Create new Class
classA.s=0;classB.s=0
classA.s=10;classB.s=10
classA.s=20;classB.s=20

从结果可以看出类中static块程序是在类被装载的时候开始执行。而不是在创建对象的时候执行。

来源链接:http://tb.blog.csdn.net/TrackBack.aspx?PostId=1392616


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

java static 静态方法的使用 注意事项 的相关文章

  • TNN行业首发Arm 32位 FP16指令加速,理论性能翻倍

    转自 https cloud tencent com developer article 1774206 https www cnblogs com zhangshenghui p 11825760 html FP16是半精度浮点格式 相比
  • Android中Acition和Category常量表

    Action Action常量 对应字符串 简单说明 ACTION MAIN android intent action MAIN 应用程序入口 ACTION VIEW android intent action VIEW 显示指定数据 A
  • assert在debug 和 release版本中的区别

    转自 https blog csdn net panfengsoftware article details 8910468 debug版本与release的不同点 debug版本中含有调试信息 不会对程序进行优化 assert相应的宏会被
  • Tensorflow的Bazel编程(二)

    转自 http blog csdn net langb2014 article details 54312697 安装官网 https bazel build versions master docs tutorial Java html
  • Android-打包AAR步骤以及最为关键的注意事项

    转自 https www jianshu com p f391d0a6691e 简介 最近因为项目的要求 需要把开发的模块打包成aar 供其他项目调用 在搞了一段时间后 发现这里还是有很多需要注意的地方 所以记录一下 帮助大家不要走弯路 首
  • Android系统运动传感器

    转自 https blog csdn net liang123l article details 53992197 Android平台提供了多种感应器 让你监控设备的运动 传感器的架构因传感器类型而异 重力 线性加速度 旋转矢量 重要运动
  • android studio 安装说明

    转自 http www cnblogs com liuhongfeng archive 2015 12 30 5084896 html 1 下载android studio 含SDK版本 http www android studio or
  • 纯手工gcc 编译android native Cpp代码

    纯手工gcc 编译android native Cpp代码 api level 19 32位 编译成功 api level 19 home charlie android tool android ndk r10e toolchains a
  • 解决camera1 onPreviewFrame()会阻塞UI线程

    转自 https blog csdn net qq 31939617 article details 86360335 https www huaweicloud com zhishi arc 13664997 html 注意 onPrev
  • 各国语言对应翻译表

    为了工作方便 自己做了一个地区语言的英文翻译 让自己可以更快的找到自己需要的地方 同时 分享给大家 谢谢 中文 各国语言 翻译 序号 中文 翻译 1 阿尔巴尼亚语 2 阿拉伯语 3 阿姆哈拉语 4 阿塞拜疆语 Az rbaycan 5 爱尔
  • Android:手把手带你了解实用的Android Jetpack

    转自 https blog csdn net carson ho article details 104243841 前言 在2018年 Google I O 大会上发布了一系列辅助Android开发者开发的实用工具集合 Jetpack 今
  • Nv21转Bitmap(高效率转化)

    转自 https blog csdn net qq1137830424 article details 81980673 版权声明 本文为博主原创文章 遵循 CC 4 0 BY SA 版权协议 转载请附上原文出处链接和本声明 本文链接 ht
  • java static 静态方法的使用 注意事项

    定义为 static function1 function1 中不能引用this或super 在android 中这样用的话 会出现以下的报错 W dalvikvm 2783 JNI WARNING instance fieldID 0x5
  • Android性能调优工具TraceView介绍

    转自 http www trinea cn android android traceview 本文主要介绍Android性能调优工具TraceView的使用及通过其确定性能点 目前性能优化专题已完成以下部分 性能优化总纲 性能问题及性能调
  • 在Android Studio中下载Android SDK的两种方式(第二种好用)

    转自 https www cnblogs com mxj961116 p 10423479 html Android studio下载地址 http www android studio org 方式一 设置HTTP Proxy1 打开Se
  • Android数据的四种存储方式SharedPreferences、SQLite、ContenProvider

    作为一个完整的应用程序 数据存储操作是必不可少的 因此 Android系统一共提供了四种数据存储方式 分别是 SharePreference SQLite Content Provider File 由于Android系统中 数据基本都是私
  • Android开发使用OpenCv中JavaCameraView预览图左旋90度问题

    转自 https blog csdn net yd yandong article details 52698696 本文参考地址 http stackoverflow com questions 14816166 rotate camer
  • Java反射机制的学习

    转自 http www cnblogs com keis archive 2011 03 29 1998736 html Java反射机制是Java语言被视为准动态语言的关键性质 Java反射机制的核心就是允许在运行时通过Java Refl
  • Android APP应用启动页白屏(StartingWindow)优化

    转自 https www cnblogs com whycxb p 9312914 html 本人采用这种方法没有效果 启动图片出来第一帧 我应用的第一帧也出来了 启动背景颜色没有调试出来 Theme AppCompat Light Dar
  • android 反射机制和反射调用方法

    对于android 中很多类没有开放出来 考虑到这些API不稳定 后续有可能会更改 所有没有在SDK中暴露出来给用户使用 但是我们在开放的过程中还是需要使用到一些android 系统中未开放出来的class 这时候我们就可以通过反射机制来调

随机推荐

  • 2021-04-21

    python 画多列柱状图 柱状图子图 一 目的 使用matplotlib画柱状图 或在子图中画柱状图 二 方法 1 导包 import pandas as pd import numpy as np import matplotlib p
  • python multiprocessing 报错cannot pickle ‘_io.TextTOWrapper‘ object

    一 报错TypeError cannot pickle io TextTOWrapper object 在使用多进程时报错 错误信息 TypeError cannot pickle io TextTOWrapper object 1 1 原
  • c盘满了怎么办?如何快速清理内存(6个方法)

    很多用户都会问 我的电脑c盘东西太多了 c盘满了怎么办 c盘爆满 可能还会收到系统提示磁盘空间不足的警告 当出现这种情况 会导致电脑很多应用无法正常运行 运行速度也会大大降低 该如何解决这个问题 不如来看看小编精心整理的关于如何清理c盘垃圾
  • antV使用教程入门

    在移动端使用antV F2图表入门介绍 1 通过npm安装 npm install antv f2 save 成功安装完成之后 即可使用 import 或 require 进行引用 const F2 require antv f2 2 通过
  • 剑指 Offer 14- I. 剪绳子 数学法+动态规划

    剑指 Offer 14 I 剪绳子 难度 中等 题目描述 解题思路 1 数学方法 记不清在哪里好像做过这道题 在所有的分法里 每次以3为一段能得到最大的结果 比如9 分成33的时候是最大的 计算数字除以3的余数 如果余1 就和其中一个三组合
  • DETRs Beat YOLOs on Real-time Object Detection

    目录 1 模型架构 1 1高效混合编码器 1 1 1 尺度内特征交互模块AIFI 1 1 2 跨尺度特征融合CCFM 1 2IoU感知查询选择 总结 DETRs在实时目标检测中击败YOLO 问题 DETR的高计算成本 实时检测效果有待提高
  • ES6之map()方法

    map 方法 map 映射 即原数组映射成一个新的数组 map方法接受一个新参数 这个参数就是将原数组变成新数组的映射关系 function myfun 1 arr var array arr map item gt array push
  • unity2019导入leapmotion插件显示SpatialTracking在unity Engine中缺少相应的头文件

    unity2019导入leapmotion插件显示SpatialTracking在unity Engine中缺少相应的头文件 1 问题描述 2 问题解决方法 1 2 3 插入这个插件 4 问题就可以解决了 注 2019将很多插件需要自己选择
  • RabbitMQ--扩展--10--消息追踪

    RabbitMQ 扩展 10 消息追踪 1 介绍 1 1 RabbitMQ 消息异常丢失的情况 可能是生产者与Broker断开了连接并且也没有任何重试机制 可能是消费者在处理消息时发生了异常 不过却提前进行了ack 可能是交换机并没有与任何
  • js如何实现网站内容禁止复制和粘贴、另存为?

    1 使右键和复制失效 方法1 在网页中加入以下代码 代码如下 方法2 在中加入以下代码
  • 四个复制就能用的炫酷网页特效

    第一个 炫酷星空
  • springboot的基本配置

    server port 8086 spring profiles active dev application name my springsecurity plus datasource driver driver class name
  • 【鸿蒙】日志工具的使用

    鸿蒙 Harmony应用开发 目录导航 在前面 鸿蒙 创建你的第一个Harmony项目我们已经能够顺利的编译并运行我们的第一个程序hello world 为了今后能走的更远 我们现在需要点基础的装备 日志工具 学会了日志工具的使用方法 会对
  • kubectl proxy 命令使用

    kubectl proxy address 192 168 8 220 accept hosts localhost 127 0 0 1 1 accept paths
  • 【语义分割】8、Self-Regulation for Semantic Segmentation

    文章目录 一 背景 二 动机 三 方法 SR F Loss Shallow to Deep SR L Loss Deep to Shallow 四 效果 论文地址 https arxiv org pdf 2108 09702 pdf 代码地
  • Spingboot 多模块引入第三方jar包

    1 在需要的模块中引入jar包 2 在此模块中的pom xml 中引用 3 要想打包部署服务器 需要在启动模块中添加配置信息 ps 启动模块要引用此模块才能将此一起jar打包部署
  • 开源的虚拟化私有云及云管平台

    免费开源的私有云及云管平台来了 除虚拟化外 还支持纳管主流的 9 大公有云及私有云平台 欢迎大家安装体验 能解决哪些问题 将几台物理服务器虚拟化成一个私有云平台 需要一个紧凑而且功能相对完整的物理机全生命周期管理工具 将 VMware vS
  • bottle 文件服务器,python bottle 框架基础教程:文件上传

    文件上传 需要注意的是前端html的form表单中 要添加 enctype multipart form data 属性 否则无法上传文件 在后端 用request files方法 获取到表单传上来的文件 首先把对象赋值给一个变量名 如up
  • Android开发过程中的一些问题

    1 Can t toast on a thread that has not called Looper prepare 就是Android子线程中不能直接使用Toast显示提示信息的问题 加入Looper prepare 和Looper
  • java static 静态方法的使用 注意事项

    定义为 static function1 function1 中不能引用this或super 在android 中这样用的话 会出现以下的报错 W dalvikvm 2783 JNI WARNING instance fieldID 0x5