Java SE(Java Standard Edition,Java 标准版)是Java技术的核心和基础,是Java ME和Java EE编程的基础 [1] 。Java SE是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。用Java实现的Hot Java浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器均支持Java applet。
我差不多完成了“Head First Java”这本书.我正在研究这个的原因是我希望有一天能用JavaEE开发工作.现在我在想,我应该继续学习EE(转向Head First Servlets和JSP)还是应该花更多时间学习SE?这会有帮助吗?我会继续直接说我想在最快但最理想的时间学习EE(平衡的方式).有什么建议? 提前致谢! 对我而言,与JavaEE一样好,因为你已经做了足够的SE.当然,在编程
  Servlet是一些遵从JavaServletAPI的Java类,这些Java类可以响应请求。尽管Servlet可以响应任意类型的请求,但是它们使用最广泛的是响应web方面的请求。Servlet必须部署在Javaservlet容器才能使用。虽然很多开发
每一个对象,都有一个在内存中的地址哈希值,这个哈希值是十六进制的 调用Object对象的hashCode()方法,返回这个对象的哈希值
简单的说设计模式,其实就是对问题行之有效的解决方式。其实它是一种思想。
我想安装 Java应用程序作为Windows服务.几年前我使用 this Java Service wrapper成功了.不幸的是,似乎这个工具不再在开发中,因此没有Windows 7和64位版本可用.我需要在Windows 7和XP机器上安装我的Java应用程序. 有没有人知道一个很好的选择? 编辑:我需要这个商业用途;来自Tanuki的建议的Java Service Wrapper太贵了. 前
JavaSE 软件工程师认证考试试卷 笔试  考试时间150分钟 总分 100分 姓    名_______________________身份证号_______________________准考证号_______________________    考试结束后考卷必须收回,否则考试成绩无效  尚学堂JavaSE软件工程师认证考试试卷 一、   填空题(共20个题目,总计20分) 使用Java开发应用程序包括编写源程序,编译源程序,解释并运行三个步骤,其中Java源程序编译后生成的字节码文件的扩展名为   .class             。在Java中,浮点型变量的类型有float和double两种,对于float型变量,内存分配4个字节,对于double型变量,内存分配   8       个字节。在Java JDK1.7之前,switch只能支持byte、short、char、int或者其对应的封装类以及Enum类型。在JDK1.7中又加入了      String     类型。在循环结构中,如果想跳出循环体,结束整个循环结构可以使用  braek       语句。类是组成Java程序的基本要素,类体有两部分构成:一部分是变量的定义,另一部分是方法      的定义。  方法重载        是指在一个类中可以有多个方法具有相同的名字,但这些方法的参数类型、个数、顺序必须不同,与方法的返回值和访问修饰符无关。   package      关键字作为Java源文件的第一条非注释性语句,指明该源文件定义的类所有的包。在Java中如果一个类中没有显示使用extends关键字标明这个类继承自哪个类,那么这个类就默认是   Object      的子类。声明数组仅仅是给出了数组的名字和元素的数据类型,要想真正地使用数组还必须使用    new     关键字在堆内存中分配内存空间。在Java中有二维数组int [ ] [ ]array={{1,2,3},{4,5}} ,可以使用array[0].length        得到二维数组中第二维中第一个数组的长度。在Java中使用java.lang包中的  StringBuffer  类来创建一个字符串对象,它代表一个字符序列可变的字符串,可以通过相应的方法改变这个字符串对象的字符序列。在Java中每个Java基本类型在java.lang包中都在一个相应的包装类,把基本类型数据转换为对象,其中包装类Integer是java.lang.Number   的直接子类。对于一个已经不被任何引用变量引用的对象,当垃圾回收器准备回收该对象所占用的内存时,将自动调用该对象的 finalize()  方法。Math类提供了许多数学运算的静态方法,其中  random()        方法是用来生成随机数的方法,其返回类型是double类型。在Java中对于程序可能出现的检查时异常,要么用try…catch语句捕获并处理它,要么使用    throws       语句抛出它,由上一级调用者来处理。read方法从输入流中顺序读取源中的单个字节数据,该方法返回字节值(0-255之间的一个整数),如果到达源的末尾,该方法返回   -1       。在Java中编写实现多线程应用有两种途径:一种是继承Thread类创建线程,另一种是实现    Runnable         接口创建线程。 链表        结构是一种由多个节点组成的数据结构,并且每个节点包含有数据以及指向下一个节点的引用。在Java Socket网络编程中,开发基于TCP协议的服务器端程序使用的套接字是    Serversocket        。在Java中使用SAX解析XML文档主要有两个部分,一个是SAX解析器,一个是 事件处理器       。  二、   选择题(共25个题目,总计25分) 1)在Java中,源文件Test.java中包含如下代码,则程序编译运行的结果是(  B  )。(选择一项) public class Test {         publicstatic void main(String[ ] args) {                  system.out.println("Hello!");         }}    A输出:Hello! B.编译出错,提示“无法解析system” C.运行正常,但没有输出任何内容 D.运行时出现异常 2)在Java中,下面( AB   )语句能正确通过编译。(选择两项)    ASystem.out.println(1+1);     B.char i =2+'2';System.out.println(i); C.String s="on"+'one'; D.intb=255.0; 3)分析如下Java代码,编译运行的输出结果是(A   )。(选择一项) public static void main(String[ ] args) {                  booleana=true;                  booleanb=false;                  if(!(a&&b)) {                          System.out.print("!(a&&b)");                  }elseif (!(a||b)) {                          System.out.println("!(a||b)");                  }else{                          System.out.println("ab");                  }}    A!(a&&b) B.!(a||b) C.ab D.!(a||b)ab      4)在Java中有如下代码,则编译运行该类的输出结果是(  D  )。(选择一项) public static void main(String[ ] args) {                  for(inti=0;i<10;i++){                          if(i%2!=0)                                   return;                          System.out.print(i);                  }}    A13578 B.02468 C.0123456789 D. 5)在Java的程序类中如下方法定义正确的是(  AD )。(选择两项)    Apublic int ufTest(int num){                  int sum=num+100;                  returnsum;} B.public String ufTest(int num){                  intsum=num+100;                  returnsum;} C.public void ufTest(int num){                  intsum=num+100;                  returnsum;} D.public float ufTest(int num){                  intsum=num+100;                  returnsum;} 6)分析下面的Java源程序,编译后的运行结果是( B  )。(选择一项) import java.util.*;public class Test {         publicstatic void main(String[ ] args) {                  int[ ] numbers=new int[ ]{1,2,3};                  System.out.println(Arrays.binarySearch(numbers,2));         }}  输出 A输出:0 B.输出:1 C.输出:2 D.输出:3  7)分析如下Java程序的代码所示,则编译运行后的输出结果是( C   )。(选择一项) public class Test {         intcount=9;                                                       publicvoid count1(){                  count=10;                  System.out.println("count1="+count);         }         publicvoid count2(){                  System.out.println("count2="+count);         }         publicstatic void main(String[ ] args) {                  Testt=new Test();                  t.count1();                  t.count2();         }}    Acount1=9;count2=9; B.count1=10;count2=9; C.count1=10;count2=10; D.count1=9;count2=10; 8)在Java中,以下定义数组的语句正确的是(CD   )。(选择两项)    Aint  t[10]=new int[ ]; B.char[ ]a=”hello”; C.String[ ] s=new String [10]; D.double[] d [ ]=new double [4][ ]; 9)分析如下Java代码,该程序编译后的运行结果是(  D  )。(选择一项) public static void main(String[ ] args) {                  Stringstr=null;                  str.concat("abc");                  str.concat("def");                  System.out.println(str);         }    Anull B.abcdef C.编译错误 D.运行时出现NullPointerException异常  10)给定如下Java代码,编译运行后,输出结果是(   C )。(选择一项) public class Test {         publicstatic void main(String[ ] args) {                  StringBuffera=new StringBuffer("A");                  StringBufferb=new StringBuffer("B");                  operate(a,b);                  System.out.println(a+","+b);         }         staticvoid operate(StringBuffer x,StringBuffer y){                  x=newStringBuffer("BBB");                  y=x;         }}    ABB
JavaSE 软件工程师认证考试试卷 笔试  考试时间150分钟 总分 100分 姓    名_______________________身份证号_______________________准考证号_______________________    考试结束后考卷必须收回,否则考试成绩无效  尚学堂JavaSE软件工程师认证考试试卷 一、   填空题(共20个题目,总计20分)Java虚拟机就是一个虚拟的用于执行   字节码文件       的计算机。它是Java最核心的技术,是Java跨平台的基础。使用Java开发应用程序包括编写源程序,编译源程序,解释并运行三个步骤,其中编译和解释分别需要使用javac.exe和   java.exe        实现。一个十进制整数转换成八进制数后是1234,则它转为十六进制数后是    29C        。Java中浮点数据类型包括float和double两种类型,其中float类型又被称作单精度类型,尾数可以精确到7位有效数字,在内存中占用     4       个字节。使用Math.random( )返回带正号的 double值,该值大于等于0.0且小于1.0。使用该函数生成[30,60]之间的随机整数的语句是:(int)(Math.random()*31)+30。for循环的语法格式是for (表达式1;表达式2;表达式3) {循环体},其中在整个循环过程中只执行一次的部分是  表达式1         。Java中    构造方法       方法与类名相同,没有返回值,在创建对象实例时由new运算符自动调用。   Package        语句作为Java源文件的第一条语句,指明该源文件定义的类所在的包。局部变量的名字与成员变量的名字相同,若想在该方法内使用成员变量,必须使用关键字  this        。Java异常处理中,如果一个方法中出现了多个Checked异常,可以在方法声明中使用关键字  throws        声明抛出,各异常类型之间使用逗号分隔。声明数组仅仅是给出了数组名字和元素的数据类型,要想真正地使用数组还必须为它    分配内存空间                 。Arrays类的binarySearch( ) 方法使用二分搜索法来搜索指定的数组,以获得指定的值。必须在进行此调用之前对数组进行   排序 ,否则否则结果是不确定的。Object类有一个public方法是  toString()    ,一个对象通过调用该方法可以获得该对象的字符串表示。StringBuilder类是StringBuffer类的替代类,两者的共同点是都是可变长度字符串,其中线程安全的类是 StringBuffer 。Java集合框架提供了一套性能优良、使用方便的接口和类,包括Collection和Map两大类,它们都位于  java.util包中  Treeset           是一种Collection类型的集合类,其中元素唯一,并采用二叉树作为存储结构,元素按照自然顺序排列。JavaIO流可以分为节点流和处理流两大类,其中前者处于IO操作的第一线,所有操作必须通过他们进行。处于新建状态的线程被启动后,将进入线程队列排队等待CPU服务,此时它已经具备了运行条件,一旦轮到享用CPU资源时,就可以脱离创建它的主线程独立开始自己的生命周期。上述线程是处于     就绪         状态。在线程通信中,调用  wait()   方法可以是当前线程处于等待状态,而为了唤醒一个等待的线程,需要调用的方法是notify( )。在Socket编程中,IP地址用来标志一台计算机,但是一台计算机上可能提供多种应用程序,使用   端口号           来区分这些应用程序。 二、   选择题(共25个题目,总计25分) 1)有一段Java 程序,其中public类名是A1,那么保存它的源文件名可以是(  A   )。(选择一项)    AA1.java B.A1.class C.A1 D.都不对 2)在Java中,byte数据类型的取值范围是(  A   )。(选择一项)    A-128~ 127 B.-228~128 C.-255~ 256 D.-255~ 255 3)有以下方法的定义,请选择该方法的返回类型( D   )。(选择一项)            method(bytex, double y) {         return  (short)x/y*2;}    Abyte B.short C.int D.double 4)以下选项中添加到代码中横线处会出现错误的是(  BD   )。(选择二项) public class Test {         public float aMethod(floata, float b) {                  return 0;                }                                       }    Apublic float  aMethod(float a, float b, floatc) {                  return 0;} B.public float  aMethod(float c, float d) {                  return 0;} C.public int  aMethod(int a, int b) {         return 0;} D.private int  aMethod(float a, float b) {         return 0;} 5)阅读下列文件定入的Java代码,其执行结果是(    D )。(选择一项) public class Test {         public static voidmain(String[] args) {                  char ch = 'c';                  switch (ch) {                      case 'a':                              System.out.print("a");         break;                      case 'b':                              System.out.print("ab");                      case 'c':                              System.out.print("c");                      default:                              System.out.print("d");                  }         }}    Aa B.b C.c D.cd 6)下面程序执行的结果是在屏幕上打印(    B )次Java基础班。(选择一项) for(int i=1;i<=10;i++){         if (i<5)                  continue;         System.out.println("Java基础班");}    A5 B.6 C.7 D.8 7)以下四个选项中和下面代码功能相同的是(  B   )。(选择一项) int i = 1;int sum = 0;while (i <= 100) {         if (i % 2 == 0)                  sum = sum + i;         i++;}    Afor (int x =1;x<=100;x++){ sum=sum+x;} B.for (int x =0;x<=100;x+=2){ sum=sum+x;} C.for (int x =1;x<=100;x+=2){ sum=sum+x;} D.上述全对 8)以下代码中错误的语句是( D   )。(选择一项) public class Something{         public static voidmain(String[] args){                  final Other o=newOther();                  newSomething().addOne(o);//1         }         public void addOne(Other o){                  o.i++;//2                  o =  new Other();//3         }}class Other{         public int i;}    A1 B.2 C.3 D.没有错误 9)在Java中,以下程序编译运行后的输出结果为(  D   )。(选择一项) public class Test {    int x, y;    Test(int x, int y) {        this.x = x;        this.y = y;    }    public static voidmain(String[] args) {        Test pt1, pt2;        pt1 = new Test(3, 3);        pt2 = new Test(4, 4);        System.out.print(pt1.x+ pt2.x);    }}    A6 B.34 C.8 D.7 10)下列选项中关于Java中类方法的说法错误的是(  A  C )。(选择二项)    A在类方法+中可用this来调用本类的类方法 B.在类方法中调用本类的类方法时可直接调用 C.在类方法中只能调用本类中的类方法 D.在类方法中调用实例方法需要先创建对象 11)下列选项中关于Java中super关键字的说法正确的是(  AD   )。(选择一项)    Asuper关键字是在子类对象内部指代其父类对象的引用 B.super关键字不仅可以指代子类的直接父类,还可以指代父类的父类 C.子类通过super关键字只能调用父类的方法,而不能调用父类的属性 D.子类通过super关键字可以调用父类的构造方法 12)编译运行如下Java代码,输出结果是( D  )。(选择一项) class Base {         public voidmethod(){                  System.out.print ("Basemethod");         }}class Child extendsBase{            public voidmethodB(){                  System.out.print ("ChildmethodB");         }}class Sample {         public static void main(String[] args) {                  Base base= new Child();                  base.methodB();         }}    ABase method B.Child methodB C.Base methodChild methodB D.编译错误 13)在Java中,关于引用数据类型的类型转换说法正确的是(AB     )。(选择二项)    A引用数据类型的类型转换有向上转型和向下转型 B.向下转型,必须转换成其真实子类型,而不能随意转换 C.向下转型是自动进行的,也称隐式转换 D.向上
1 java的历史     1991-至今  詹姆斯-高斯林  SUN公司     ORACLE 2009年2 java的版本     javaSE  java的标准桌面级开发     javaEE  企业级web开发     javaME  嵌入式开发3 jdk的版本   jdk1.0 - jdk11  每半年一个版本  每年的3月和9月4 jdk 的安装和环境配置  jdk--开发者必须安装  jre--使用者安装   java_home:jdk的安装目录  javac:%java_home%/bin;  可以在任意目录结构中,进入jdk的bin目录,方便的找出javac.exe和java.exe 5 数据类型         基本类型         byte,short,int,long,char,float,double,boolean           引用类型                           类,接口,数组,枚举6 运算符          算术运算符,关系运算符,逻辑运算符, 赋值运算符,位运算7 流程语句           单分支  if           双分支  if else          多分支       if.. else if.. else            switch(){case..}  8 循环语句   while(条件){                 循环体                 变量更新   }     do{   }while();     for(初始值;范围值;变量更新){          循环体   }9 方法          无参无返回          无参有返回          有参无返回          有参有返回       形参:方法声明是时,形式上的参数,是一个局部变量       实参:方法调用时,传递给方法实际有值的参数     10 数组        概念:一个开辟了连续的空间的线性数据结构            特点:查询快,增删慢        可以添加任意的数据类型    数组的基本操作        增  删  改  查 长度  判断  排序       冒泡排序  插入排序,选择排序,快速排序          11 面向对象编程  OOP  AOP(面向切面编程)             类:类是一类事务的模板,把很多具有相同功能的对象抽象出来,描述为一个类       对象:每一个类的具体的实例        类是对象的抽象化,对象是类的实例化     类的主要组成      成员属性,成员方法,构造方法           成员属性:修饰符  数据类型  变量名;      默认值             整型:0             浮点型:0.0             布尔型:false             引用类型:null      变量的作用域         局部变量:声明在方法中的变量,作用范围,只在本方法中         成员变量                   类变量(static),对象变量      内存位置               堆: 对象变量                         方法区:类变量      加载时机                创建对象的时候,对象变量初始化                 类被加载的时候,类变量就初始化      份数             对象变量,每一个对象各有一个             类变量,被每一个对象所共享                            成员方法               修饰符  返回值  方法名(){                   } 方法重载:overload   1:同一个类   2:方法名相同   3:参数列表不同     3.1 参数个数     3.2 参数类型     3.3 参数顺序       和返回值无关        构造器        修饰符  类名(){       }           每一个类至少会有一个构造器,如果没有手动提供构造器,那么编译器会自动提供一个无参的构造器               构造器没有返回值            构造器也可以重载           public Student(){       this("张三");    }                public Student(String name){       this("李四",20);    }      public Student(String name,int age){       } this:代表当前对象的引用   1:this可以调用成员属性   2:this可以调用成员方法   3:this可以调用构造方法 static的用法        修饰变量:代表类变量,被所有的对象共享        修饰方法:代表类方法        修饰类 :静态内部类   细节      成员方法中,既可以直接访问成员变量,也可以访问类变量              静态方法中,只可以访问类变量           成员方法既可以直接调用成员变量,也可以调用类方法                 静态方法只可以调用类方法       面向的3个特点     封装,继承,多态     封装:属性私有化,提供公开的get和set方法  隐藏细节,公开接口                 属性的值是随着行为的变化而变化的    修饰符    访问修饰符     private:类可见性     default:类可见,包可见性     protected:类可见,包可见,不同包的子父类     public:项目可见    非访问修饰符          static,final,  synchronized,native,transient      继承:单继承,继承链  extends          顶级父类:Object          子类可以继承父类的属性和方法,私有的不能继承         修饰符 class 子类  extends 父类{     }                   优点:提高了代码的复用性       缺点:高耦合,低内聚    多态 :         父类 变量名 = new 子类()  向上转型(父类的引用指向子类对象)   多态的必要原则     1:继承     2:要有方法重写     3:向上转型     方法重写  override  1:子父类之间    2:方法名,参数列表,返回值相同 super:代表父类的引用  super.成员属性  super.成员方法  super(参数); 调用父类的构造函数 java中任何一个子类的构造方法都必须调用其父类的构造方法(包括隐示调用)并且调用父类构造方法的语句必须是子类构造方法的第一条语句  抽象类:就是为了被子类继承  修饰符  abstract class 类名{   }  特点        1:可以有抽象方法        2:可以有实现方法        3:不可以创建对象        4:利用多态通过向上转型,创建子类对象接口 interface   修饰符  class 类名 implements 接口名{     } 类与类      继承关系,单继承,有继承链 类与接口     实现关系,多实现 接口和接口     继承关系,多继承    抽象类与接口的区别?  变量    抽象类有,接口没有  常量     抽象类有,接口有  public static final  成员方法     抽象类有,接口没有(jdk1.8之前没有)   抽象方法     抽象类有,接口有 public abstract  构造器   抽象类有,接口没有    final的用法  final修饰变量,表示常量,一旦被赋值,不可被修改   final修饰方法,表示这个方法不能被重写  final修饰类,表示是一个最终类,不能被继承(所有的方法不能被重写)  异常  Throwable  子类    Exception  异常    编译时异常    运行时异常 RuntimeException    Error     错误    处理异常   1:捕获异常     try:尝试运行有可能会出错的代码     catch:一旦代码出错,编译器生成一个异常对象,和catch中异常做匹配,匹配成功进入catch块,后面的代码正常执行     finally:表示一定会执行,就算代码中有return,也会在return之前执行,除了虚拟机强制退出 System.exit(1);   2:抛出异常       throws:在方法声明部分,抛出一个异常类,可以一次性声明多个异常                                   有可能会抛出异常     throw                                  在方法体中,抛出一个异常对象,一定会抛出异常   3:自定义异常      1:继承Exception或者RuntimeException      2:提供一个无参的,以及有参的构造函数                 public class SexException extends Exception{             public SexException(){            super();        }        public SexException(String message){            super(message);        }             }                       常用类  包装类   Byte,Short,Integer,Long,Float,Double,Boolean,Character 字符串 :String:是一个不可变的字符序列    "abcde".substring(0,2) = "ab"    "abc".charAt(0) = 'a'    "abc".length() = 3    "a,b,c".split(",") = ["a","b","c"]    "abc".indexof("a") = 0    "abaca".replaceAll("a","*") = "*b*c*"; 字符串缓冲类     StringBuffer:可变的字符序列  同步     StringBuilder: 可变的字符序列  不同步  数学类:Math   random()  0-1 之间的小数  包括0,不包括1   max(int a,int b);   min(int a,int b);    ceil(10.123) = 11   floor(10.123) = 10   pow(10,3) = 1000  次幂函数 日期类:java.util.Date   Date  date = new Date(); 获取当前系统时间   getYear()+1900   getMonth()+1   getDate()   getDay()   getHours();   getMinutes()   getSeconds()    日期转为字符串    date.toLocalString(); 日期转换类 DateFormat 子类  SimpleDateFormat DateFormat df = ne