zoukankan      html  css  js  c++  java
  • 最近学习java遇到的几个疑问

    问题1:

    1.问Java中如何运行Applet小程序(它没有主方法的)?

    比方有如下的一个Apllet小程序

    代码如下:

    Test.java

     

    小应用程序代码书写和编译完成后,无法独立运行,需要一个载体或者容器。下面的HTML网页代码就是小应用程序载入的容器。
    Test.html
    运行方法如下:
    首先编写一个网页文件,如Test.html,这个文件代码如下:
    <applet code="Test.class" width=800 height=600 >
    </applet>
    注意这个Test应该和你的JAVA源代码中的主类保持一致,即就是你得源代码为Test.java;
    打开运行->cmd->,用cd 命令进入你得文件目录,
    javac Test.java  //编译
    appletviewer Test.html//运行
    问题2:
    Java最基本的面试题求解
    问下面程序的输出结果
    public class //此部分省略
    public void main(String[] args){
          int i = 0;
          i =  i++;
    System.out.println(i);
    }
    输出结果为0,i= i++;是将i++这个表达式的值0赋值给i。
    以下程序错误的是(A)
    A. short s = 1; s = s + 1;
    B.  short s = 1; s += 1;
    知道的请写出详细原因,  里面的s=s+1和s+=1有什么区别?
    答:隐式类型转换可以从小到大自动转,即byte->short->int->long如果反过来会丢失精度,必须进行显示类型转换
      而s+=1的意思与s = s+1不同,s=s+1这句先执行s+1然后把结果赋给s,由于1为int类型,所以s+1的返回值是int,编译器不会自动进行了隐式类型转换
      所以将一个int类型赋给short就会出错,而s+=1不同由于是+=操作符,在解析时候s+=1就等价于s = (short)(s+1),翻番来讲就是
      s+=1 <=> s =  (s的类型)(s+1)
    1例中的 ' 1 ‘为int类型,不会自动转换为short型 ,这样可以:s=(short)(s+1);但可能会损失精度
     
    而简单赋值运算和复合赋值运算的最大差别就在于:复合赋值运算符会自动地将运算结果转型为其左操作数的类型!   
    这就是1例编译不通过,2例编译却能通过的原因。
  • 相关阅读:
    PYSpark DataFrame
    wheel用户组
    CURD是什么?
    mysql binlog日志清理
    skype的图片默认保存路径
    bootstrap使用总结
    库表批量新增id字段
    谷粒商城-问题汇总
    开发工具问题汇总
    feign客户端,参数无法传递复杂对象
  • 原文地址:https://www.cnblogs.com/ccf19881030/p/12004952.html
Copyright © 2011-2022 走看看