• 有意思的小题目


    如下代码,执行test()函数后,屏幕打印结果为()

    public class Test2
    {
        public void add(Byte b)
        {
            b = b++;
        }
        public void test()
        {
            Byte a = 127;
            Byte b = 127;
            add(++a);
            System.out.print(a + " ");
            add(b);
            System.out.print(b + "");
        }
    }     
     
    add()方法里面的修改值并不会起作用,而add(++a)会使a数值越界成-128,所以输出为-128 127
     
     
     
    What is the result of compiling and executing the following fragment of code:
    Boolean flag = false;
    if (flag = true)
    {
        System.out.println(“true”);
    }
    else
    {
        System.out.println(“false”);
    }
     
    Boolean修饰的变量为包装类型,初始化值为false,进行赋值时会调用Boolean.valueOf(boolean b)方法自动拆箱为基本数据类型,因此赋值后flag值为true,输出文本true。 如果使用==比较,则输出文本false。if的语句比较,除boolean外的其他类型都不能使用赋值语句,否则会提示无法转成布尔值。输出true
     
     
    jre判断程序是否结束的标准是()
    A 所有前台线程执行完毕   B所以后线程执行完毕   C 所有线程执行完毕
     
    A
     main()函数即主函数,是一个前台线程,前台进程是程序中必须执行完成的,而后台线程则是java中所有前台结束后结束,不管有没有完成,后台线程主要用与内存分配等方面。                                                                                          
    前台线程和后台线程的区别和联系:
    1、后台线程不会阻止进程的终止。属于某个进程的所有前台线程都终止后,该进程就会被终止。所有剩余的后台线程都会停止且不会完成。
    2、可以在任何时候将前台线程修改为后台线程,方式是设置Thread.IsBackground 属性。
    3、不管是前台线程还是后台线程,如果线程内出现了异常,都会导致进程的终止。
    4、托管线程池中的线程都是后台线程,使用new Thread方式创建的线程默认都是前台线程。
    说明:   
        应用程序的主线程以及使用Thread构造的线程都默认为前台线程                      
        使用Thread建立的线程默认情况下是前台线程,在进程中,只要有一个前台线程未退出,进程就不会终止。主线程就是一个前台线程。而后台线程不管线程是否结束,只要所有的前台线程都退出(包括正常退出和异常退出)后,进程就会自动终止。一般后台线程用于处理时间较短的任务,如在一个Web服务器中可以利用后台线程来处理客户端发过来的请求信息。而前台线程一般用于处理需要长时间等待的任务,如在Web服务器中的监听客户端请求的程序,或是定时对某些系统资源进行扫描的程序
     
     
    C
    堆区:只存放类对象,线程共享;
    方法区:又叫静态存储区,存放class文件和静态数据,线程共享;
    栈区:存放方法局部变量,基本类型变量区、执行环境上下文、操作指令区,线程不共享;
     
     
     
     
    public static void main(String ... args) {
    System.out.println(randomString(-229985452)+' '+randomString(-147909649));
    }

    public static String randomString(int seed) {
    Random rand = new Random(seed);
    StringBuilder sb = new StringBuilder();
    while(true) {
    int n = rand.nextInt(27);
    if (n == 0) break;
    sb.append((char) ('`' + n));
    }
    return sb.toString();
    }
     
     
     猜猜这个打印出来的是什么?hello world
     
     
     
     
     
     
  • 相关阅读:
    一、Javadoc文档标记
    0-写在java系列文章之前
    Tomcat全攻略
    linux使用普通账户时,无法登录,提示“-bash: fork: retry: Resource temporarily unavailable”
    在Linux下安装和使用MySQL
    linux下修改jdk环境变量的方法
    linux下卸载系统自带或者非自带的jdk
    linux中 /etc/profile的作用
    每天一个linux命令:tar命令-jia2
    如何使用蓝湖设计稿同时适配PC及移动端
  • 原文地址:https://www.cnblogs.com/hzzjj/p/6204086.html
Copyright © 2020-2023  润新知