• 最近学习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例编译却能通过的原因。
  • 相关阅读:
    input文本框加入xwebkitspeech实现语音输入功能
    获取textarea的光标位置
    初学者使用Application Cache指南
    一个封装了localStorage的增删改查的方法
    video from html5
    Asynchronous Method Invocation
    consume an asp.net webservice(upload a file to server) from java via soap
    INFO:VB/VBA (Long) 的转换自动化错误
    : 使用SAAJ发送和接收SOAP消息
    how to design a hardware service use .net remoting
  • 原文地址:https://www.cnblogs.com/ccf19881030/p/12004952.html
Copyright © 2020-2023  润新知