java 中全局变量与Scanner问题

问题描述

java 中全局变量与Scanner问题

看最下面的结果,为什么是先输入一个整数后它才执行main()方法中的System.out.println(“请输入一个整数的语句”);,如果我想让这个System.out.pritnln();语句先执行,然后在执行那个Scanner语句该怎么办,还有个问题就是就是为什么最上面的全局变量和Scanner 语句一定要用static来修饰,否则就报错

解决方案

首先,类加载的时候就会初始化静态变量,方法块,再者,nextint是线程阻塞方法(好像是这个名词吧,反正就是若得不到你的值就不往下执行),所以main中的输出语句没执行,

解决方案二:

卧槽,你不会直接贴源码?

解决方案三:

java 局部变量和全局变量问题
java 局部变量和全局变量问题

解决方案四:

静态方法在类实例化之前执行,且执行一次

解决方案五:

用static 修饰的原因是因为你在main方法中直接调用的原因,你可以new一个Test22的对象,通过对象的属性调用就可以不需要用static修饰了

解决方案六:

或者

解决方案七:

第二张错了,

解决方案八:

同样被static修饰的前提下 执行顺序是从上往下的,把成员变量的static去调就可以先执行main方法,让后调用构造方法初始化成员变量;

解决方案九:

这个是调用java方法调用的问题,顺序一般是:
父类静态成员和静态初始化块 从上到下的顺序
子类静态成员和静态初始化块 从上到下的顺序
父类实例成员和实例初始化块 从上到下的顺序
父类的构造方法
子类实例成员和实例初始化块 从上到下的顺序
子类的构造方法

时间: 2024-09-13 21:21:25

java 中全局变量与Scanner问题的相关文章

java中 使用while(Scanner.hasNextIn()) 怎么才能停下来。。。。。。。

问题描述 java中 使用while(Scanner.hasNextIn()) 怎么才能停下来....... 需求是:通过键盘随意输入几个数字,然后转变成数组,并排序 问题:while(Scanner.hasNextInt())停不下来,一直等待输入,试过以字母.符号结尾,但是都不能让循环停下来......... 请各位大大们解疑释惑,或者是有更好的方法能够实现这个需求么? 解决方案 你需要在循环中调用 arr[i++] = scanner.nextInt(); 或者 scanner.next(

java中如何实现全局变量

问题描述 "JAVA中不应该有所谓全局变量的概念,全局变量严重影响了封装和模块化,所以如果你的程序中需要所谓的全局变量,那一定是你对程序的设计出了问题."很多地方看到上面的话,我也始终认为上面的话是正确的.但是实际项目中有时候会觉得增加一个全局变量会很有用,例如增加一个SessionManager类,使用全局变量SessionMap管理多个用户的session.本帖想仅就技术层面如何实现全局变量,使用static关键字或使用单例模式,每种实现是否会有线程安全问题.servletCont

Java中Scanner类与BufferReader类的不同点(非常详细)_java

java.util.Scanner类是一个简单的文本扫描类,它可以解析基本数据类型和字符串.它本质上是使用正则表达式去读取不同的数据类型. Java.io.BufferedReader类为了能够高效的读取字符序列,从字符输入流和字符缓冲区读取文本. 下面是两个类的不同之处: 当nextLine()被用在nextXXX()之后,用Scanner类有什么问题 尝试去猜测下面代码的输出内容: // Code using Scanner Class import java.util.Scanner; c

java中 的变量在方法间的传递权限问题

问题描述 java中 的变量在方法间的传递权限问题 我现在定义了方法1(),在该方法里用了scanner获取了一个整数a,对这个整数进行了相关操作,返回了一个字符串s,但是我现在定义了一个方法2(),该方法要接收方法1()返回的字符串s,该方法同时也要用到方法1()中scanner获取的那个整数a,进行操作后返回一个整数b(b用main()函数接收),那么问题就来了,方法1只能返回一个字符串s,那么方法2()怎么获取方法1()的那个用scanner接收到的整数呢?我的想法是将方法1()中的sca

关于Java中各种修饰符与访问修饰符的说明

访问 补充一下JAVA的基础知识(转)关于Java中各种修饰符与访问修饰符的说明 类:访问修饰符  修饰符  class 类名称 extends 父类名称 implement 接口名称 (访问修饰符与修饰符的位置可以互换) 访问修饰符 名称 说明 备注 public 可以被所有类访问(使用) public类必须定义在和类名相同的同名文件中 package 可以被同一个包中的类访问(使用) 默认的访问权限,可以省略此关键字,可以定义在和public类的同一个文件中   修饰符 名称 说明 备注 f

Java中static、this、super、final用法

一.static  请先看下面这段程序:   public class Hello{     public static void main(String[] args){ //(1)       System.out.println("Hello,world!");   //(2)     }   } 看过这段程序,对于大多数学过Java 的从来说,都不陌生.即使没有学过Java,而学过其它的高级语言,例如C,那你也应该能看懂这段代码的意思.它只是简单的输出"Hello,w

Thinking:Java中static、this、super、final用法

Thinking:Java中static.this.super.final用法   本篇旨在帮助准备学习Java以及刚接触Java的朋友认识.掌握和使用static.this.super.final这几个关键字的使用.Java博大精深,我也是一位正在学习和使用Java的爱好者,文中难免有不妥之处,欢迎指正. 一.static 请先看下面这段程序:   public class Hello{    public static void main(String[] args){ //(1)     

c++与java中子类中调用父类成员的方法

java中: import java.util.Scanner; public class ClassTest{ public static void main(String args[]){ child ch=new child(2); parent p=ch; p.print(); //p.print2();//调用错误,父类中没有改成员方法,该方法只属于子类! } } class parent{ int xx; parent(int x){ xx=x; } void print(){ Sy

异常-java中的try-catch-finally中的问题

问题描述 java中的try-catch-finally中的问题 就是在java中,比如要求两个数的余数的简单例子. public class task2 { public static void main(String args[]) { Scanner s=new Scanner(System.in); int a,b,c; try { while(true) { a=s.nextInt(); b=s.nextInt(); c=a%b; System.out.println("余数为:&qu