1.判断题:

Java程序一般应当含有main方法,因为它是所有JaVa程序执行的入口(错)

解析:applet(java小程序)不用,application(java应用程序)需要。(见java applet和java application的区别

2.判断题:

当运行Java程序时,类加载器将字节码加载到内存中,字节码检验器确认所有的字节码是合法的并且不会破坏Java的安全限制,然后解释器读取这些字节码并将它们翻译成计算机可以理解的语言。在程序执行的时候还有可能需要在内存中存储一些必要的数据。(对)

 

3.易错现象:

4.关于java中的堆区、栈区、方法区

参考:http://ydiandiandian.diandian.com/post/2012-06-18/40027997380

关于JVM,参考书《深入浅出JVM》,后面补张图,虽然对JVM还是不太了解,暂且先放放。

先了解具体的概念:

JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method)

(1)堆区:

1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令)

2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身

(2)栈区:

1.每个线程包含一个栈区,栈中只保存基础数据类型的对象和自定义对象的引用(不是对象),对象都存放在堆区中

2.每个栈中的数据(原始类型和对象引用)都是私有的,其他栈不能访问。

3.栈分为3个部分:基本类型变量区、执行环境上下文、操作指令区(存放操作指令)。

(3)方法区:

1.又叫静态区,跟堆一样,被所有的线程共享。方法区包含所有的class和static变量。

2.方法区中包含的都是在整个程序中永远唯一的元素,如class,static变量。

5.static代码块在Java虚拟机加载类时执行;每个static代码块只会被执行一次.

6.关于java的main方法:

(1)public,static,void,String args[],四个因素缺一不可;main函数名不可换;args可以随意换。

(2)static是必须的,这样可以在不需要构造类实例的前提下,直接运行应用程序。(见题3)

    public不是必须的,声明为public是为了main方法可以从任意一个Java运行环境中调用。

     可以使用public、默认(即什么都不写)、protected、private进行修饰,编译不会出错,但会提示“在类***中找不到主方法, 请将主方法定义为:public static void main(String[] args)”。

例题1:

以下哪些是main方法的正确形式?

(1)static void main(String[] args){}

(2)public static void main(String[] args){}

(3)public static void main(String args[]){}

(4)public static void main(String door[]){]

答案:1,2,3,4

例题2:

public class TestMain{
   //情况1:
   public static void main(String[] args){//可以通过编译,而且能运行
         System.out.println("test ok!");
   }
       //情况2:
   static public void main(String[] args){//可以通过编译,而且能运行
      System.out.println("test ok!");
   }
       //情况3:
   static void main(String[] args){//可以通过编译,但不能运行,提示:Main method not public
      System.out.println("test ok!");
   }
       //情况4: 
   public static void main(String args){//可以通过编译,但不能运行
      System.out.println("test ok!");
   }
       //情况1:
   public void main(String[] args){//可以过编译,不可运行,因为static修饰符是必须的。
      System.out.println("test ok!");
   }
  //情况5: 
   void main(String[] args){//可以通过编译,不可运行
      System.out.println("test ok!");
   }
  //情况6: 
   public static void main(String[] args){
      System.out.println(args.length);
      //System.out.println(args[2]);//命令行上输入java TestMain,则args[2]不存在,故有异常,不能正常运行
   }
}

7.jdbc中,第一步需要Class.forname("某个数据库的类"),把它叫做“加载数据库驱动”?

要用jdbc,首先要注册驱动的。比如注册一个mysql的驱动:
DriverManager.registerDriver(new com.mysql.jdbc.Driver());

那么Class.forName("com.mysql.jdbc.Driver");
这句话是加载com.mysql.jdbc.Driver.java的,看一下这个类的源码就知道了,在这个类的静态代码块是这样写的:

 static
{
try
{
DriverManager.registerDriver(new Driver());
} catch (SQLException e) {
throw new RuntimeException("Can't register driver!");
}
}

不光是mysql,sql server ,oracle的驱动都是类似的。

java错题本的更多相关文章

  1. Java错题

    加粗为正确答案,绿色为错选答案 1.对于以下代码: for ( int i=0; i<10; i++)  System.out.println(i); for循环后,i的值是多少? A.i不再存 ...

  2. java错题集

    解析:java中,JavaDoc注释以 /** 开头(中间写内容)以*/结尾 解析:A对象是类的实例,不是集合,其余正确 解析:创建一个对象的语法为: 类名 对象名=new 类名();,因此正确答案为 ...

  3. 错题集锦(二) -- Java专项

    错题集锦(二) -- Java专项 标签(空格分隔): 找工作 JVM的内存模型 线程共享: 堆(Heap):主要存放一些对象实例 方法区(Method Area / Non-Heap):用于存储已被 ...

  4. 20175316盛茂淞 《java程序设计》第三周课堂测试错题总结

    20175316盛茂淞 <java程序设计>第三周课堂测试错题总结 出现问题 错题总结 题目1 在Ubuntu中用自己的有位学号建一个文件,教材p87 Example4_15 1. 修改代 ...

  5. 【笔试题】Java 易错题精选

    笔试题 Java 易错题精选 1.写出下列程序的运行结果( )String 不变性Java 值传递 public class Test { public static void main(String ...

  6. Java 整体测试重点题 错题积累

    重点题    错题积累 1: 解析: %d:用来设置输出日志的日期和时间 %m:用来输出代码中指定的消息 %n:用来输出一个回车换行符 %l:用来输出日志事件的发生位置 %p:用来输出优先级 %f:用 ...

  7. Java多线程习题 ===重点 ,错题积累

    多线程重点,错题分析 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: . 12: 13: 14: 15:

  8. 牛客网Java刷题知识点之Java 集合框架的构成、集合框架中的迭代器Iterator、集合框架中的集合接口Collection(List和Set)、集合框架中的Map集合

    不多说,直接上干货! 集合框架中包含了大量集合接口.这些接口的实现类和操作它们的算法. 集合容器因为内部的数据结构不同,有多种具体容器. 不断的向上抽取,就形成了集合框架. Map是一次添加一对元素. ...

  9. 【原创】这道Java基础题真的有坑!我也没想到还有续集。

    前情回顾 自从我上次发了<这道Java基础题真的有坑!我求求你,认真思考后再回答.>这篇文章后.我通过这样的一个行文结构: 解析了小马哥出的这道题,让大家明白了这题的坑在哪里,这题背后隐藏 ...

随机推荐

  1. Apache22中配置虚拟主机(Apache VirtualHost)

    Apache VirtualHost的作用就是可以让一个apache为多个域名服务,相当于一个服务器挂了N多个网站,举个例子: 我的apache服务器,ip为x.x.x.x,我有两个域名www.too ...

  2. [bug]使用SharpZipLib遇到中文名称乱码问题

    写在前面 业务逻辑是这样的,需要导出一个app的话题,并需要把该话题下帖子的附件导出,然后需求想修改成人员的名称.jpg的格式.所以就出现了中文乱码的问题.在本地没问题,但发布到服务器上面就出问题,每 ...

  3. linux c程序中获取shell脚本输出的实现方法

    linux c程序中获取shell脚本输出的实现方法 1. 前言Unix界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作. ...

  4. c++中try catch的用法

    c++中try catch的用法 标签: c++exception数据库sqlc 2011-10-24 21:49 45622人阅读 评论(3) 收藏 举报  分类: 一点小结(267)  版权声明: ...

  5. Servlet的生命周期及filter,servletRequest和servletResponse

    序,Web应用中,Servlet和Filter是很重要的两个概念,一定要理解透彻. 一.Servlet类 继承自HttpServlet,HttpServlet是一个抽象类,主要包含的方法有init,s ...

  6. 用WP_Query自定义WordPress 主循环

    我们知道操作 WordPress 主循环(WordPress Loop)最容易的方法是使用 query_posts 函数. 但是使用 query_posts 直接修改 WordPress 默认的主循环 ...

  7. linux 文件权限除了r、w、x外还有s、t、i、a权限:

    s:文件属主和组设置SUID和GUID,文件在被设置了s权限后将以root身份执行.在设置s权限时文件属主.属组必须先设置相应的x权限,否 则s权限并不能正真生效(c h m o d命令不进行必要的完 ...

  8. [codeforces 235]A. LCM Challenge

    [codeforces 235]A. LCM Challenge 试题描述 Some days ago, I learned the concept of LCM (least common mult ...

  9. 基于贪心算法的几类区间覆盖问题 nyoj 12喷水装置(二) nyoj 14会场安排问题

    1)区间完全覆盖问题 问题描述:给定一个长度为m的区间,再给出n条线段的起点和终点(注意这里是闭区间),求最少使用多少条线段可以将整个区间完全覆盖 样例: 区间长度8,可选的覆盖线段[2,6],[1, ...

  10. HDOJ并查集题目 HDOJ 1213 HDOJ 1242

    Problem Description Today is Ignatius' birthday. He invites a lot of friends. Now it's dinner time. ...