首页 > 编程语言 >Java试题

Java试题

时间:2023-11-05 11:37:44浏览次数:37  
标签:Java 试题 System static println SingletonDemo public out

自增变量:

 

package com.lvym;

public class Test {
    public static void main(String[] args) {
        int i=1;
        i=i++;   //先算等号右边:把i压入栈,i=1,i自增,局部变量i=2,再算等号左边:把栈值 1 赋给i,i=1.
        int j=i++;// 先算等号右边:把i压入栈,i=1,i自增,局部变量i=2,再算等号左边:把栈值 1 赋给j,j=1.
        int k=i+ ++i*i++;// 先算等号右边:把i压入栈,i=2,i自增,i=3压入栈,i自增,局部变量i=4,再把乘号右边i=3压入栈,栈中数据有  1 3 3,先算乘法3*3=9,还没有结束,所以再把9压入栈进行计算k=9+2=11
        System.out.println(i);//4
        System.out.println(j);//1
        System.out.println(k);//11
    }
}

单例模式:

Java试题_初始化

 

 

Java试题_初始化_02

 

package com.lvym;

/**
 * 饿汉式
 *    直接创建实例对象,不管你是否需要,这个对象都会创建。
 *    1.构造器私有化,保证一个类只能有一个实例
 *    2.自行创建,并且用静态变量保存
 *    3.向外暴露这个实例
 *    4.强调这是一个单例,用final修饰
 *
 */
public class SingletonDemo {

    public static final SingletonDemo INSTANCE=new SingletonDemo();
    private SingletonDemo(){
        System.out.println("SingletonDemo");
    }


}
---------------------------------------

package com.lvym;

public class test {
    public static void main(String[] args) {

        SingletonDemo singletonDemo=SingletonDemo.INSTANCE;
        System.out.println(singletonDemo);
}
}

结果:
SingletonDemo
com.lvym.SingletonDemo@1b6d3586
/**
 *  饿汉式
 */
public enum SingletonDemo2 {
    INSTANCE
}
--------------------------
package com.lvym;

public class test {
    public static void main(String[] args) {

        SingletonDemo2 singletonDemo=SingletonDemo2.INSTANCE;
        System.out.println(singletonDemo);

}
}
结果:
  INSTANCE
package com.lvym;


/**
 * 懒汉式
 *   有延迟,需要就去调用创建  不安全
 *    1.构造器私有化,保证一个类只能有一个实例
 *    2.自行创建,并且用静态变量保存
 *    3.向外暴露这个实例
 *
 *
 */
public class SingletonDemo {

   private static SingletonDemo instance;
   private SingletonDemo(){}

   public static SingletonDemo getInstance(){
       if (instance == null) {
           instance=new SingletonDemo();
       }
       return instance;
   }

}
package com.lvym;

import java.util.concurrent.*;

public class test {
    public static void main(String[] args) throws ExecutionException, InterruptedException {


     Callable<SingletonDemo> callable=new Callable<SingletonDemo>() {
         @Override
         public SingletonDemo call() throws Exception {
             return SingletonDemo.getInstance();
         }
     };
        ExecutorService executorService= Executors.newFixedThreadPool(3);
        Future<SingletonDemo> submit = executorService.submit(callable);
        Future<SingletonDemo> submit1 = executorService.submit(callable);
      //有时相等
        System.out.println(submit.get());
        System.out.println(submit1.get());
      
        executorService.shutdown();
}
}
package com.lvym;


/**
 * 懒汉式
 *   有延迟,需要就去调用创建  安全
 *    1.构造器私有化,保证一个类只能有一个实例
 *    2.自行创建,并且用静态变量保存
 *    3.向外暴露这个实例
 *
 *
 */
public class SingletonDemo {

   private static SingletonDemo instance;
   private SingletonDemo(){}

   public static SingletonDemo getInstance(){
       if (instance==null){
           synchronized (SingletonDemo.class) {
               if (instance == null) {
                   instance = new SingletonDemo();
               }
           }
       }

       return instance;
   }

}
package com.lvym;


/**
 * 懒汉式
 *   有延迟,需要就去调用创建  安全  因为他是在内部类加载和初始化时,创建的
 *    1.构造器私有化,保证一个类只能有一个实例
 *    2.自行创建,并且用静态变量保存
 *    3.向外暴露这个实例
 *   内部类被加载和初始化时,才会创建INSTANCE实例对象,
 *   静态内部类不会随着外部类的加载和初始化而初始化,它是要单独加载和初始化。
 *
 *
 */
public class SingletonDemo {


   private SingletonDemo(){}
   //内部类
  private static class Inner{
       private final static SingletonDemo INSTANCE=new SingletonDemo();
  }
 public static SingletonDemo getInstance(){
       return Inner.INSTANCE;
 }
}

 

Java试题_成员变量_03

 

 

Java试题_成员变量_04

 

 

Java试题_初始化_05

 

package com.lvym;
 class Father {
    private int i=test();
    private static int j=method();
    static {
        System.out.println("1");
    }
    Father(){
        System.out.println("2");
    }
    {
        System.out.println("3");
    }
    public int test(){
        System.out.println("4");//子类有重写所以执行子类
        return 1;
    }
    public static int method(){
        System.out.println("5");
        return 1;
    }
}

/**
 *   一个类的初始化<clinit>:由静态类变量显示赋值代码和静态代码块组成
 *       先初始化父类,再初始化子类
 *
 *   子类实例化方法<init>:由非静态类变量显示赋值代码和非静态代码块组成及构造方法
 *        1.super()
 *        2.非静态类变量显示赋值代码或非静态代码块,谁前谁先执行
 *        3.子类无参
 *
 *
 *
 */
public class Son extends Father{
    private int i=test();
    private static int j=method();
    static {
        System.out.println("6");
    }
    Son(){
        System.out.println("7");
    }
    {
        System.out.println("8");
    }
    public int test(){
        System.out.println("9");
        return 1;
    }
    public static int method(){
        System.out.println("10");
        return 1;
    }


    public static void main(String[] args) {
   结果:父类静态:5   1   子类静态: 10    6
}
}
public static void main(String[] args) {
        Son son=new Son();
        System.out.println("---------------");
        Son son2=new Son();

        5
        1
        10
        6
        9
        3
        2
        9
        8
        7
        ---------------
        9
        3
        2
        9
        8
        7
    }
}

 

Java试题_初始化_06

 

 

 

Java试题_成员变量_07

 

 

 

Java试题_初始化_08

 

 

 

Java试题_System_09

 

 

 

Java试题_成员变量_10

 

 

 

Java试题_初始化_11

 

 

 

Java试题_System_12

 

package com.lvym;

/**成员变量有默认值
 * 局部变量没有默认值
 *
 */
public class Son {
    static int s;//成员变量,类变量 s
    int i; //成员变量,实例变量 i
    int j;//成员变量,实例变量 j

    { //非静态代码块   作用域开始
        int i=1; //局部变量 i
        i++; //i代表局部变量 i  就近原则
      //  this.i++;   //i代表//成员变量 i
        j++;  //j代表成员变量 j   就近原则
        s++;
    }     //作用域结束
    public void test(int j){//局部变量 j     作用域开始
        j++;
        i++;
        s++;
    }   //作用域结束
       public static void main(String[] args) {
        Son son=new Son();
        Son son2=new Son();
        son.test(10);
        son.test(20);
        son2.test(10);
                             //成员变量i   成员变量j  成员变量s
           System.out.println(son.i+" ,"+son.j+" ,"+son.s); //2   1   5
           System.out.println(son2.i+" ,"+son2.j+" ,"+s);  // 1   1  5
    }
}

 

spring传播行为:一个方法运行在一个开启事务的方法中时,当前方法是用原来事务还是开启新事物

Java试题_System_13

 

 

 

Java试题_System_14

 

 

                    

Java试题_成员变量_15

 

 

                                            脏读:读取别人未提交的数据 , 不可重复读,幻读:读取别人已提交的。

    事务的隔离级别:

 

Java试题_成员变量_16

 

 

 

Java试题_初始化_17

 

 

Java试题_System_18

 

 

Java试题_System_19

 

 

 

Java试题_初始化_20

 

Java试题_成员变量_21

 

 假如 get 请求乱码:

修改server.xml

Java试题_System_22

 

 

Java试题_成员变量_23

 

 

Java试题_System_24

 

 

Java试题_初始化_25

 

 

Java试题_初始化_26

 

 

Java试题_成员变量_27

 

 

Java试题_System_28

 

 

Java试题_System_29

 

 

Java试题_System_30

 

 

Java试题_System_31

 

 

Java试题_成员变量_32

 

 

Java试题_System_33

 

 

Java试题_成员变量_34

 

 

Java试题_System_35

 

 

Java试题_System_36

 

标签:Java,试题,System,static,println,SingletonDemo,public,out
From: https://blog.51cto.com/u_16253752/8190779

相关文章

  • Java小白学习记录--------常见的一维数组遍历方法
    一维数组:for循环遍历:int[]myArray={1,2,3,4,5};for(inti=0;i<myArray.length;i++){System.out.println("myArray["+i+"]="+myArray[i]);//输出数组中的每个元素} for-each循环遍历数组(增强for循环遍历)int[]myArray={1,2,3,4,5};......
  • 有趣的Java之网络多线程——UDP编程
    UDP编程通信基本介绍类DatagramSocket和DatagramPacket【数据包/数据报】实现了基于UDP协议网络程序。UDP数据报通过数据报套接字DatagramSocket发送和接收,系统不保证UDP数据报一定能安全送到目的地,也不确信什么时候可以抵达。DatagramPacket对象封装了UDP数据报,在数据报中包含了发......
  • 【趣味Javascript】前端开发中不为人知的LHS和RHS查询,你真的弄明白了吗? 《1024程序
    ......
  • 2023年最强大厂Android面试题库来了,不接受反驳!
    前言上周和部门BP聊天,她说最近在boss上放出一个初级Android岗位,平均每天都能收到300多份简历。Android市场越来越卷,跳槽前做好技术进阶突击,才能稳拿offer。相信有过中、大厂面试经验的小伙伴都知道,中、大厂面试提问都不会是点到为止那么简单,很多面试官会就一个比较基础的问题,一......
  • java常用类
    java常用类autoCloseAble接口 1.内部类,2.Object类,3.Object类常用用法,4包装类,5.String类,6.BigDecimal类内部类:1.成员内部类;在一个类中再定义一个类,作为前一个类的成员存在;2.静态内部类;在成员内部类的基础上加static;3.局部内部类;把一个类定义在一个方法内部;访问局部变量......
  • java 类和对象以及封装
    封装对象代表什么,就得封装对应的数据,并提供数据对应的行为......
  • 前端学习-JavaScrip学习-js基础01
    学习教程:黑马程序员视频链接JS简介JS组成JavaScrip=ECMAscript(语言基础)+webAPIwebAPI=BOM+DOM资料查询网站:MDN<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="......
  • Java八股面试整理(4)
    34.遇到过异常吗,如何处理?在Java中,可以按照如下三个步骤处理异常:捕获异常将业务代码包裹在try块内部,当业务代码中发生任何异常时,系统都会为此异常创建一个异常对象。创建异常对象之后,JVM会在try块之后寻找可以处理它的catch块,并将异常对象交给这个catch块处理。处理异常在......
  • 每天5道Java面试题(第二天)
    1. JDK和JRE有什么区别?JDK:JavaDevelopmentKit的简称,Java开发工具包,提供了Java的开发环境和运行环境。JRE:JavaRuntimeEnvironment的简称,Java运行环境,为Java的运行提供了所需环境。具体来说JDK其实包含了JRE,同时还包含了编译Java源码的编译器Javac,还包含了很多J......
  • Java学习—对象和类
    对象&类对象:对象是类的一个实例(对象不是找个女朋友),有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。类:类是一个模板,它描述一类对象的行为和状态。java命名约定的优点通过使用标准的Java命名约定,您可以使自己和其他程序员更容易阅读代码。Jav......