j2se基础知识学习
马士兵_J2SE_第二章_基础语法_个人学习笔记
第二章基础语法1. 成员变量:类体内方法体外声明的变量 局部变量:方法体内声明的变量 重要:变量出了它所在的大括号就不起作用了,反之只要是在它的大括号内任何地方都起作用。
TestConvert.javapublic class TestConvert {public static void main(String arg[]) {int i1 = 123;int i2 = 456;double d1 = (i1+i2)*1.2;//系统将转换为double型运算float f1 = (float)((i1+i2)*1.2);//需要加强制转换符byte b1 = 67;byte b2 = 89;byte b3 = (byte)(b1+b2);//系统将转换为int型运算,需//要强制转换符System.out.println(b3);//结果:-100double d2 = 1e200;float f2 = (float)d2;//会产生溢出System.out.println(f2);//infinity(无限)float f3 = 1.23f;//必须加flong l1 = 123;long l2 = 30000000000L;//必须加lfloat f = l1+l2+f3;//系统将转换为float型计算long l = (long)f;//强制转换会舍去小数部分(不是四舍五入)}}TestConvert2public class TestConvert2 {public static void main(String[] args) {int i=1,j=12;float f1=(float)0.1; //0.1ffloat f2=123;long l1 = 12345678,l2=8888888888L;double d1 = 2e20,d2=124;byte b1 = 1,b2 = 2,b3 = 127;j = j+10;i = i/10;i = (int)(i*0.1);char c1='a',c2=125;byte b = (byte)(b1-b2);char c = (char)(c1+c2-1);float f3 = f1+f2;float f4 = (float)(f1+f2*0.1);double d = d1*i+j;float f = (float)(d1*5+d2);}}Fab.javapublic class Fab {public static void main(String[] args) {System.out.println(f(-9));}public static long f(int index) {if(index < 1) {System.out.println("invalid parameter!");return -1;}if(index == 1 || index == 2) {return 1;}long f1 = 1L;long f2 = 1L;long f = 0;for(int i=0; i<index-2; i++) {f = f1 + f2;f1 = f2;f2 = f;}return f;}}。
J2SE学习基础速度成精华
Create By Cc.liu QQ:65422933Java-1:1.Java程序的类型:Applet:为在internet上工作而创建的java小应用程序。
应用程序:在计算机操作系统中运行的程序。
2.Java开发环境:Bin目录:存放可执行文件。
Lib目录:存放java的类库文件。
Demo目录:存放演示文件。
Jre目录:存放java运行环境文件。
3.Java开发工具:Javac:将.java文件编译为class(字节码)文件。
Java:执行编译后的class文件。
Javadoc:将/** */的注释内容生成为帮助文档。
4.JVM(java虚拟机)每次读取并执行一条java语句,解释执行过程分三部分进行:代码的转载,代码的校验和代码的执行。
5.Java的特点:简单、面向对象、健壮性、安全性、分布式、多线程。
Java-2:1.Java的数据类型分为原始数据类型和引用数据类型。
byte:1个字节,-128~127char:2个字节int:4个字节float:初始化float型变量时要注意在浮点数后加上f。
如float num = 19.2f,否则程序将出错。
引用数据类型包括数组、类和接口。
2.变量的命名:必须以字母、“_”或“$”符号开头。
首字母后可以跟任意数量的字母、数字、“_”或“$”符号。
Java区分大小写。
3.变量作用域:每一个{}构成一个块,可以从块内访问快外的变量或属性,但不能从块外访问块内的变量和属性。
4.类型转换:将一种数据类型的值赋给另一个类型的的变量时,将会发生类型转换,必须满足两个条件:类型必须兼容,目标类型大于源类型。
数值类型(整型和浮点型)与boolean类型不兼容,char和boolean不兼容。
5.逻辑运算符:&:在作if判断时,当两个条件都为真,返回真,且所有条件都执行。
|:在作if判断时,当两个条件中有一个为真,返回真,且所有条件都执行。
&&:在作if判断时,当两个条件都为真,返回真,当有一个条件不成立则后续条件不在执行。
Java2SE基础培训课件-PPT精品文档
ktwang
目录
• • • • • • 1:J2SE介绍 2:A:web start介绍 6:demo 分析
J2SE介绍
• Java2平台包括:标准版(J2SE)、企业版(J2EE)和 微缩版(J2ME)三个版本。J2SE,J2ME和J2EE,这也就 是SunONE(Open NetEnvironment)体系。J2SE就是Java2 的标准版,主要用于桌面应用软件的编程;J2ME主要 应用于嵌入式系统开发,如手机和PDA的编程;J2EE 是Java2的企业版,主要用于分布式的网络程序的开发, 如电子商务网站和ERP系统。 • Standard Edition(标准版) J2SE 包含那些构成Java语言核 心的类。比如:数据库连接、接口定义、输入/输出、 网络编程 ,可以这样理解:J2SE是基础;压缩一点, 再增加一些CLDC等方面的特性就是J2ME;扩充一点, 再增加一些EJB等企业应用方面的特性就是J2EE。
•
• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •
package sample; import java.awt.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class MyFlowLayout { private Frame f; private Button button1, button2, button3; public static void main (String args[]) { MyFlowLayout mflow = new MyFlowLayout (); mflow.go(); } public void go() { f = new Frame ("FlowLayout演示"); f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent evt) { f.setVisible(false); f.dispose(); System.exit(0); } }); f.setLayout(new FlowLayout(FlowLayout.LEADING, 20, 20)); button1 = new Button("确定"); button2 = new Button("打开"); button3 = new Button("关闭"); f.add(button1); f.add(button2); f.add(button3); f.setSize (200,200); f.pack();//调整窗口的大小 f.setVisible(true);//图像可见性 } }
J2SE入门
J2SE入门:1. 预备知识2. 存储方式和操作控制3. 面向对象技术4. 常用数据结构5. 异常处理机制6. 图像处理和音频操作7. 图形化界面(swing)8. 多线程技术9. I/O操作10. 基本网络技术预备知识:㈠Java的历史背景不用多说了㈡环境变量设置及原理开发Java程序的第一步必须设置环境变量,它主要包括PATH和CLASSPA TH的设置,理解PA TH和CLASSPA TH的作用对于Java程序的运行是有一定好处的。
PATH:操作系统执行某一命令时都会通过PA TH进行搜索;如果将Java的一些工具诸如Java、Javac、Javadoc等的路径也加入PATH,则当运行Java的编译器或解释器时系统就可以搜索到这些工具并执行操作,这些工具都在jdk目录下的bin目录下。
PATH的设置如下(设jdk装在C:j2sdk1.4.2):PATH=%PATH%;C:j2sdk1.4.2bin;注:%PATH%表示将原来的PA TH路径保留,也可不设此项而直接将jdk路径加到原PATH 路径下。
;为Windows下的分隔符(Linux下为:)。
CLASSPATH:为一个路径列表,用于搜索Java编译或者运行时需要用到的类。
虚拟机按以下顺序搜索并装载所有需要的类:引导类: 组成java 平台的类, 包含rt.jar 和i18n.jar 中的类.扩展类: 使用java 扩展机制的类, 都是位于扩展目录($JA V A_HOME/jre/lib/ext)中的.jar 档案包.用户类: 开发者定义的类或者没有使用java 扩展机制的第三方产品.CLASSPATH的设置如下:CLASSPATH=.;C:j2sdk1.4.2libtools.jar; C:j2sdk1.4.2_05jrelibrt.jar注:.表示当前目录,如果觉得这个目录名太繁琐,可以先设一个JA V A_HOME,并令JA V A_HOME=C:j2sdk1.4.2,然后再设CLASSPATH的格式为:%JA V A_HOME%libtools.jar 等就可以了。
J2SE基础知识
线程的具体用法如下1、Thread(); 构造默认线程的对象2、Thread(Runnable target); 使用传递的Runnable构造线程对象3、Thread(Runnable target,String name); 使用传递的Runnable构造名为name的线程对象。
4.Thread(ThreadGroup group,Runnable target,String name); 使用传递的Runnable 在group线程组内构造名为name的线程对象。
5、final String getName(); 返回线程的名称6、fianl boolean isAlive 判断线程的激活状态,如果线程是激活的,则返回值为true7、final void setName(String name) 设置线程的名称。
8、set/getPriority() 设置或得到线程的优先级别9、final void join() 等待线程的结束10、static void sleep(millis) 将线程挂起一段时间,。
单位为毫秒11、void start() 启动线程12、void stop() 停止线程13、void interrupt() 中断线程14、static int activeCount() 返回激活的线程数15 、static void yield() 使正在执行的线程暂时停止,并且允许其他线程运行。
中断线程的方法有2种:(1)用while循环,使用flag的值来控制线程是否中断可在线程中定义退出方法将flag的值设置为flase,要想结束线程在主方法中调用退出方法(2)利用interrupt方法对线程进行中断,直接利用对象.interrupt();即可。
********************注意************************* 在使用sleep()方法或join方法是都必须抛出异常、抛出异常的方法有两种:(1)在public static void main(String args[])的后面加上throws InterruptedException(2)利用try{.......}catch(Exception e){....}********************注意*************************★Java使用监控器(也称对象锁)实现同步,使用监控器可以保证一次只允许一个线程执行对象的同步语句★Java使用synchronized关键字实现对象锁,当对象用synchronized修饰时,表明该对象在任意时刻只有一个线程访问★在Java中synchronized的两种使用方法●修饰方法,使调用该方法的线程均能获得对象的锁●放在代码块中,修饰对象,当前代码获得对象的锁★同步方法synchronized void Print(str){}★同步块synchronized(share){share.print(str);}★synchronized 也可以修饰类.线程组的一些方法(1)ThreadGroup(String name); 创建一个新的线程(2)int activeCount() 返回线程组中活动线程的数量(3)int enumerate(Thread[] list) 返回所有活动线程的引用(4)ThreadGroup getParent() 得到该线程组的父线程组(5)void interrupt() 中断该线程组以及他的子线程组(6) void list() 打印当前线程组的信息。
第二章 J2SE开发和运行环境
2. 安装JDK,推荐把软件装至C根目录, 所占空间很少,使用方便 3. 设置环境变量 path=C:\jdk1.4.3\bin;C:\jdk1.4.3\jre\bin
2、3 JDK应用开发工具的使用方法 2.3.1 Java源代码编译工具 2.3.2 class字节码解释工具 2.3.3 applet小程序浏览器工具 2.3.4 运行调试工具 2.3.5 Java文档管理工具 2.3.6 JAR文档创建工具
2、2 建立Java程序开发和运行环境
步骤如下:
1. 到上下载最新的Java版本
j2sdk-1_4_1_03-windows-i586.exe
j2re-1_4_1_03-windows-i586-i.exe
jdk141.chm
textpad4.5简体中文版.rar
2、2 建立Java程序开发和运行环境(续)
Java开发工具: Eclipse Jbuilder 商业软件,配置使用更加简单方 便。
查看jdk中自带的例程
Tomcat的安装与使用
第二章 J2SE开发和运行环境
2、1 J2SE平台的主要内容 2、1、1 HotSpot性能优化编译器 2、1、2 J2SE应用程序编程接口 基本的有以下几个: 1.Applet 3.Swing 5.math 2.AWT ng
2、1 J2SE平台的主要内容(续) 2、1、3 应用开发工具 Appletviewer Java Jdb Jar javap Javac Javadoc Idlj tnameserv
马士兵 J2SE基础 概念总结
基础概念(J2SE)(1_Java简介,2_基础语法)1.Java是解释型语言:java需要先编译为.class字节码文件,在执行时用解释器解释成操作系统能识别的文件。
需要经过两次操作。
Java:编译*.java源代码文件---编译器编译---*.class字节码文件,执行*.class字节码文件----解释器解释----操作系统能识别的文件C/C++: 编译 .C 源代码文件----编译器编译----*.exe字节码文件, 执行*.exe字节码文件----操作系统能识别的文件。
2.基础类型的包装类基础类型分配到栈,引用类型分配到堆基础类包装类int Integerchar Charaterboolean Boolean…转换:1. 当需要把String 转换为基础数据类型时,使用对应的基础数据类型的包装类里面的方法。
列:int a = Integer.parseInt(s);2. 将基本类型数据转换为String:int a = 2;String m = String.valueOf(a);3. String转char:String s = “Xforce”char a = s.charAt(1);(3_面向对象编程)重点:1.代码内存分析:06_内存解析_1, 07_内存解析_2,08_内存解析_3,14_TestCircle程序分析_1, 15_TestCircle程序分析_2, 15_TestCircle 程序分析_2.2.动态绑定和多态39_多态_1.avi 40_多态_2.avi 内存分析见39_多态_1.avi TestPolymoph\ Test.java父类引用指向子类对象解释:37_对象转型_1.avi3.抽象类、抽象方法4.接口一、对象和类的概念1.类是同种对象的集合与抽象,类中定义了这一类对象所应具有的静态和动态属性。
二、面向对象设计思想和步骤:(1)分析问题中有哪些类那些对象(2)分析这些对象中应该具有的属性和方法(3)分析类与类之间的关系三、Java类的定义四、局部变和成员变量局部变量:方法或语句块内部(方法的参数叫局部变量)(小)( 必须赋初试值才可以使用)成员变量:方法外部、类的内部(大), 不用初始化,java系统会给你赋初始值五、引用类型(C中的指针,占两块内存)六、构造函数构造函数是定义在java类中的一个用来初始化对象的函数1.构造函数名字与类的名字相同,大小写也保持一致2.使用new+构造方法创建一个新的对象3.构造函数与类同名切没有返回值。
J2SE学习标准篇
J2SE学习标准篇1、语法:必须比较熟悉,在写代码的时候IDE的编辑器对某一行报错应该能够根据报错信息知道是什么样的语法错误并且知道任何修正。
2、命令:必须熟悉JDK带的一些常用命令及其常用选项,命令至少需要熟悉:appletviewer、HtmlConverter、jar、java、javac、javadoc、javap、javaw、native2ascii、serialver,如果这些命令你没有全部使用过,那么你对java实际上还很不了解。
3、工具:必须至少熟练使用一种IDE的开发工具,例如Eclipse、Netbeans、JBuilder、Jdeveloper、IDEA、JCreator或者Workshop,包括进行工程管理、常用选项的设置、插件的安装配置以及进行调试。
4、API:Java的核心API是非常庞大的,但是有一些内容笔者认为是必须熟悉的,否则不可能熟练的运用Java,包括:◆ng包下的80%以上的类的功能的灵活运用。
◆java.util包下的80%以上的类的灵活运用,特别是集合类体系、正则表达式、zip、以及时间、随机数、属性、资源和Timer.◆java.io包下的60%以上的类的使用,理解IO体系的基于管道模型的设计思路以及常用IO类的特性和使用场合。
◆java.math包下的100%的内容。
◆包下的60%以上的内容,对各个类的功能比较熟悉。
◆java.text包下的60%以上的内容,特别是各种格式化类。
◆熟练运用JDBC、java.security包下40%以上的内容,如果对于安全没有接触的话根本就不可能掌握java.◆AWT的基本内容,包括各种组件事件、监听器、布局管理器、常用组件、打印。
◆Swing的基本内容,和AWT的要求类似。
◆XML处理,熟悉SAX、DOM以及JDOM的优缺点并且能够使用其中的一种完成XML的解析及内容处理。
5、测试:必须熟悉使用junit编写测试用例完成代码的自动测试。
J2SE基础教程
当前的软件开发环境
开发语言 C# Java Php C/C++ … 数据库 SQL Server Oracle MySql ? …
XML 简介
XML,英语全称是 Extended Markup Language,弥补了 HTML 的不足。 HTML 例子: <HTML> <BODY> This is a test page. </BODY> </HTML> Q:如果标签丢失或出错,HTML 会运行吗? 简单 XML 例子: <Student>ZS</Student> 查看 XML 文件,双击即可。 Q:如果标签丢失或出错,XML 会运行吗? XML 数据库例子: <Students> <Student><no>350303001</no><name>zs</name></Student> <Student><no>350303002</no><name>ls</name></Student> </Students> 查看 XML 两种方式: (1)双击(2)选择 EXCEL 程序 Q:上面的写法是否支持中文? 第一行增加: <?xml version="1.0" encoding="GB2312" ?>
1.3 有效利用 java 的文档帮助
两种版本:HTML , CHM(见压缩包 jdk150.chm) class Hello {
public static void main(String[] args) { String test="Hello world.";
J2SE第七章容器个人学习笔记
第七章.容器11361图API类图结构图1类Collection类3知识点For Generic(泛型) Auto Boxing and Unboxing6接口Collection Set List Map Iterator Comparable1.容器java API 所提供的一系列类的实例,用于在程序中存放对象J2SDK所提供的容器API位于util包内容器API的类图结构如图:容器API1.Collection接口(一个一个的装):定义了存取一组对象的方法,其子接口Set和List分别定义了存储方式Set中的数据对象没有顺序并且不可以重复。
(两对象互相equals相等则重复)List中的数据对象有顺序并且可以重复。
2.Map接口(一对一对的装):定义了存储“键(key) —值(value)映射对”的方法2.Collection接口Collection接口中所定义的方法:例举12009-12-21 20:49:57---------2010-3-28 13:10:54例举2 02_Collection_2.avi container\ BasicContainer.javaimport java.util.*;public class BasicContainer {public static void main(String[] args) {Collection c = new HashSet();c.add("hello");c.add(new Name("f1","l1"));c.add(new Integer(100));c.remove("hello"); //如果equals则去除c.remove(new Integer(100));System.out.println(c.remove(new Name("f1","l1")));System.out.println(c);}}class Name implements Comparable {private String firstName,lastName;public Name(String firstName, String lastName) {this.firstName = firstName; stName = lastName;}public String getFirstName() { return firstName; } public String getLastName() { return lastName; }public String toString() { return firstName + " " + lastName; }//重写equals方法public boolean equals(Object obj) {if (obj instanceof Name) {Name name = (Name) obj;return (firstName.equals(name.firstName))&&(lastName.equals(stName));}return super.equals(obj);}public int hashCode() {return firstName.hashCode();}public int compareTo(Object o) {Name n = (Name)o;int lastCmp =pareTo(stName);return(lastCmp!=0 ? lastCmp :pareTo(n.firstName));}}注意:重写equals方法必须重新hashCode方法当一个类的某个对象当做索引,会使用hashcode方法public boolean equals(Object obj) {if (obj instanceof Name) {Name name = (Name) obj;return (firstName.equals(name.firstName))&& (lastName.equals(stName));}return super.equals(obj);}public int hashCode() {return firstName.hashCode();}3.Iterator接口(方便遍历)相当于指针、游标,每一种容器有自己的Iterator接口例举注意:Iterator对象的remove方法是在迭代过程中删除元素的唯一安全方法2010-3-28 14:44:34 ----- 2010-3-28 20:32:23知识点1:JDK1.5增强For循环4.Set接口Set接口是Collection的子接口,Set接口没有提供额外的方法,但实现Set接口的容器类中的元素是没有顺序的,且不可重复。
J2SE复习
1、J2SE _Exception部分--Java异常是指Java提供的用于处理程序中错误的一种机制。
--所谓错误是指在程序运行的过程中发生的一些异常事件(如:除0溢出,数组下标越界,所要读取的文件不存在)。
--设计良好的程序应该在异常发生时提供处理这些错误的方法,使得程序不会因为异常的发生而阻断或产生不可预见的结果。
--Java程序的执行过程中如出现异常事件,可以生成一个异常类对象,该异常对象封装了异常事件的信息并将被提交给Java运行时系统。
这个过程称为抛出(throw)异常。
--当Java运行时系统接收到异常对象时,会寻找能出来这一异常的代码,并把当前异常对象交给其处理,这一过程称为捕获(catch)异常。
异常的分类:--J2SDK中定义了很多异常类,这些类对应了各种各样可能出现的异常信息。
Throwable--Error--ExceptionError:称为错误,由Java虚拟机生成并抛出,包括动态链接库失败,虚拟机错误等,程序对其不做处理。
Exception:所有异常类的父类,其子类对应了各种各样可能出现的异常事件,一般需要用户显示的申明或捕获。
Runtime Exception:一类特殊的异常,如被0除,数组下标越界越界等,其产生比较频繁,处理麻烦,如果显示的申明或捕获将会对程序的可读性和运行效率影响很大。
因此由系统自动检测并将他们交给缺省的异常处理程序。
(用户可不必对其进行处理)异常的捕获和处理:--try代码段包含可能产生例外的代码。
--try代码段后跟有一个或多个catch代码段--买个catch代码段申明其能处理的一种特定的异常并提供处理方法--当异常发生时,程序会终止当前的流程,根据获取异常的类型去执行相应的catch代码段--finally段的代码无论是否发生异常都有执行。
catch语句:--在catch语句块中是对异常进行处理的代码,每个try语句块可以伴随一个多多个catch语句,用于处理可能产生不同类型的异常对象--在catch中申明的异常对象,封装了异常事件发生的信息。
如何学习J2EE
如何学习J2EEJava发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE。
这三块相互补充,应用范围不同。
J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
1)先学习j2se要学习j2ee就要先学习j2se,刚开始学习j2se先建议不要使用IDE,然后渐渐的过渡到使用IDE 开发,毕竟用它方便嘛。
学习j2se推荐三本书,《java2核心技术一二卷》,《java编程思想》,《java 模式》。
其中《java编程思想》要研读,精读。
这一段时间是基本功学习,时间会很长,也可能很短,这要看学习者自身水平而定。
不要被IDE纠缠在学习java和j2ee过程中,你会遇到五花八门的IDE,不要被他们迷惑,学JA V A的时候,要学语言本身的东西,不要太在意IDE的附加功能,JA V A编程在不同IDE之间的转换是很容易的,过于的在意IDE的功能反而容易耽误对语言本身的理解。
目前流行的IDE有jbuilder,eclipse 和eclipse的加强版WSAD。
用好其中一个就可以了,推荐从eclipse入手j2ee。
因为Jbuilder 更适合于写j2se程序。
2)选择和学习服务器使用配置当你有了j2se和IDE的经验时,可以开始j2ee的学习了,web服务器:tomcat,勿庸置疑,tomcat 为学习web服务首选。
而应用服务器目前主要有三个:jboss、weblogic、websphere。
有很多项目开始采用jboss,并且有大量的公司开始做websphere或weblogic向jboss应用服务器的移植(节省成本),这里要说的是,学习tomcat和jboss我认为是首选,也是最容易上手的。
学习服务器使用配置最好去询问有经验的人(有条件的话),因为他们或许一句话就能解决问题,你自己上网摸索可能要一两天(我就干过这种傻事),我们应该把主要时间放在学习原理和理论上,一项特定技术的使用永远代替不了一个人的知识和学问。
J2SE篇学习笔记1
一、面向对象(重要)1、动态绑定或者迟绑定(多态):在执行期间(而非编译期间)判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。
多态存在的三个必要条件:1、要有继承2、要有重写3、父类引用指向子类对象它所调用的方法是new的类下的方法例如:abstract class Animal {private String name;Animal(String name) { = name;}/*public void enjoy(){System.out.println("叫声......");}*/public abstract void enjoy();}abstract class Cat extends Animal {private String eyesColor;Cat(String n,String c) {super(n); eyesColor = c;}/*public void enjoy() {System.out.println("猫叫声......");}*///public abstract void enjoy();}class Dog extends Animal {private String furColor;Dog(String n,String c) {super(n); furColor = c;}public void enjoy() {System.out.println("狗叫声......");}}class Bird extends Animal {Bird() {super("bird");}public void enjoy() {System.out.println("鸟叫声......");}}class Lady {private String name;private Animal pet;Lady(String name,Animal pet) { = name; this.pet = pet;}public void myPetEnjoy(){pet.enjoy();}}public class Test {public static void main(String args[]){Cat c = new Cat("catname","blue");Dog d = new Dog("dogname","black");Bird b = new Bird();//Lady l1 = new Lady("l1",c);Lady l2 = new Lady("l2",d);Lady l3 = new Lady("l3",b);//l1.myPetEnjoy();l2.myPetEnjoy();l3.myPetEnjoy();}}2、abstract抽象:含有抽象方法的类必须被声明被抽象类,抽象类必须被继承,抽象方法必须被重写,其子类来实现。
J2SE基础入门,从事Java必学!
J2SE基础⼊门,从事Java必学!我们先来了解⼀下什么是 J2SE。
J2SE 的定义J2SE,全称为Java 2 Standard Edition。
Java 2 平台包括:标准版(J2SE)、企业版(J2EE)和微缩版(J2ME)三个版本。
J2SE 即 Java 2的标准版,主要⽤于桌⾯应⽤软件的开发。
下⾯这段话是 ORACLE 对于 Java SE 的官⽅描述:Java Platform, Standard Edition (Java SE) 可以让您在桌⾯和服务器以及⽬前要求较⾼的嵌⼊式环境中开发和部署 Java 应⽤程序。
Java 提供了当今应⽤程序所需要的丰富的⽤户界⾯、良好的性能、多功能性、可移植性和安全性。
J2SE 与 J2EE、J2ME 之间的关系可以通过下图来表⽰:J2SE 的架构J2SE 的架构如下图所⽰,它主要包含了 UI、集成库、语⾔和⼯具基础库、其他基础库、Java 虚拟机等组件。
综上所述,将 J2SE 压缩⼀点再加上⼀些等⽅⾯的特性就是 J2ME;将其扩充⼀点再增加⼀些 EJB 等企业应⽤⽅⾯的特性就是 J2EE。
因此J2SE 是 J2EE 的基础,建议从事 Java 的开发⼈员从 J2SE 开始学习。
⾯对对象——巩固与提⾼在前⾯ Java 基础语法的学习中,你应该接触了⼀些⾯向对象的基础知识。
⾯向对象的概念在 Java 的开发体系中⽆处不在,在今后的开发过程中,你也应该以⾯向对象的思想来看待和解决问题。
既然是⾯向对象,就会谈论到类和对象的概念,以及它们之间的关系:类是现实世界或思维世界中的实体在计算机中的反映,它将数据以及这些数据上的操作封装在⼀起。
对象是具有类类型的变量。
类是对象的抽象,⽽对象是类的具体实例。
类是抽象的,不占⽤内存,⽽对象是具体的,占⽤存储空间。
类是⽤于创建对象的蓝图,它是⼀个定义包括在特定类型的对象中的⽅法和变量的软件模板。
下⾯,我们通过⼀些例⼦来巩固⾯向对象的相关知识。
J2SE知识点集合汇总
关键字:
Java 中一些赋予特殊含义,用做专门用途的字符串名称称为关键字 大多数编译器会将关键字用特殊方式标出 所有 Java 关键字都是小写英文 goto 和 const 虽然从未使用,但也作为被为 java 关键字保留 abstract boolean break byte case catch char class const continue default do double else extends final finally float for goto if implements import instanceof int interface long native new package private protected public return short static strictfp super switch synchronized this throw throws transient try void volatile while null
2016-10-10 -2-
J2SE 基础部分
重管理技巧,轻开发技巧 知识太陈旧 错误的做法(学生) 只看不练 只听不练 钻到细节中拔不出来(初学者) 修正:明确目标 学校:集中所有精力,教授实用知识 对计算机心存敬畏 不敢动(装卸软件,安装系统) 不敢调试 bug Java 是解释型的语言: 因为他有核心的垃圾回收机 Java 没有指针, 制,方便代码的书写,因为指针就像占用内 存,内存中必须有释放的过程,这个过程容 易出错。 配置 path&classpath Path: window 系统执行命令时要搜索的路径 Classpath:Java 在编译和运行时要找的 class 所在的路径 验证 1. Java 允许 JAVA 程序 2. Javac 编译 java 程序 3. 一个类中只能有一个 public 类,其它类的个数不限,如果源文件 文件包含一个 public 类,它必须按该类名命名。 4. Java 应用程序的执行入口是 main() 方法,它有固定的书写格式:public static void main (String args[]){…} 5. Java 语言严格区分大小写 6. Java 方法一条条语句构成,每个语句以分号结束 7. Java 注释://用于单行注释 /* 用于多行注释 */ /** *用于多行注释,且可以被 doc 工具解析 */ 8.java –version 显示的出现你所用的哪个版本 9.一个程序员的正常配置 文件夹要变成详细信息 显示所以文件 显示扩展名 在地址栏显示完整路径
01_J2SE上半部分解析
2018/10/4
J2SDK & JRE
Software Devleopmen t Kit (软件开 发包) Java Runtime Environment (Java运行环 境) 开发需要JDK 用户只需JRE
2018/10/4
开发JDK的不止一家
最主流的是Sun公司发布的JDK 除了Sun之外,还有很多公司和组织都开发了自己的 JDK
计算机语言发展史及Java的历史地位
第一代语言
◦
第一代语言或机器语言是一种低级的面向计算机的程序设计语 言,使用0和1表示各种命令。 汇编
第二代语言
◦
第三代语言
◦
◦ ◦ ◦
C、Pascal、Fortran面向过程的语言 C++面向过程/面向对象 Java跨平台的纯面向对象的语言 .NET跨语言的平台
标识符由字母、下划线“_” 、美元符“$”或数字组成。 标识符应以字母、下划线 、美元符开头。
关键字
Java 中一些赋以特定的含义,用做专门用途的字符串称 为关键字(keyword)。 所有Java关键字都是小写英文字符串。 goto 和 const 虽然从未使用,但也作被为 Java 关键 abstract default if private this 字保留。 do boolean implements protected throw
2018/10/4
Java常量
Java 的常量值用字符串表示,区分不同的数据类型。
◦ ◦
◦
◦ ◦ ◦
如整型常量 123 实型常量 3.14 字符常量 ‘a’ 逻辑常量 true、false 字符串常量 “helloworld” null 区分字符常量和字符串常量 区分 null 和 “”
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
j2se基础知识学习.txt两人之间的感情就像织毛衣,建立的时候一针一线,小心而漫长,拆除的时候只要轻轻一拉。
学习j2se基础知识J2SE1.类:具有相同的特征和行为的一个抽象的集合。
对象:类的实例化2.Java命名规则a.类名:首字母大写,若由多个单词构成,每个单词首字母大写b.变量名:首字母小写,从第二个单词字母开始大写,如intArrayc.常量:所有字母都大写,CLASS_LOAD_PATHd.关键字:所有字母都小写,if,inte.方法:首字母小写,从第二个单词字母开始大写,()是方法的标志,如changColour( );3.构造方法的规则:a.与类同名,首字母大写;b.无返回值也不加void,而且绝对不会有返回值;c.在new的时候调用,是对对象进行初始化的;e.若无自定义的构造方法,则自动生成一个default空构造方法;若有,则default自动失效.4.变量a.成员变量:直接在类里面定义的变量,作用域是整个范围b.局部变量:在方法的内部或方法的参数定义,是在定义他的{ }范围内有效。
c.若局部变量与成员变量同名,因就近原则直接用成员名调用的是局部变量,用this.变量名调用的是成员变量。
class Person{ private String name;private int age;Person(String name,int age){=name; this.age=age;}}5.外附类(wapper):把基础类型包装成类,如Integer,String.Eg: class integer{int i; integer(int i){ this.i=i; } }6.equals:在外附类里是判断类值是否相同,在普通类里面等价于”= =”,判断是否是同一个对象。
= =:对于基本数据类型,是判断值是否相等,对于类类型判断是否是同一个对象。
Eg:public static void main(String args[]){Integer n1=new Integer(47);Integer n2=new Integer(47);System.out.print(n1.equals(n2));//trueSystem.out.print(n1==n2);//false7.=:基本数据类型表示赋值,对于类类型表示内存空间引用的传递。
class Number{int i;}public class Test{ public static void main(String args[]){ Number n1=new Number(); Number n2=new Number();n1.i=9;n2.i=10; n1=n2;//n1和n2的值都为10;n1.i=20;// 此时n1和n2都为20 }}8.常见控制语句:public class XDay{public static void main(String args[]){int yearis=2100;int monthis=12;DayCount db=new DayCount();int s= db.countDays(monthis,yearis); }}class DayCount{ int countDays(int month,int year){ int count=-1;switch(month){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: count=31;break;case 4: case 6: case 9: case 11: count=3;break;case 2: if(year%4==0)count=29;else count=28;if((year%100==0)&&(year%400!=0)) count=28;} return count;}}9.从客户端输入:public class MonthCounter{public static void main(String args[]){Integer intYearMonth1=Integer.parseInt(args[0]);Integer intYearMonth2=Integer.parseInt(args[1]);//输入并转换为整型类int intYear1, intYear2,; intYear1=intYearMonth1/100;intYear2=intYearMonth2/100; }}转换为字符串类:String intYear2=String.valueof(intYearMon1);10.一维数组:a.数据类型是一致的 b.数组大小是确定的 c.初始化:静态初始化int a[]={3,4};动态初始化:声明:int a[];创建:a=new int[5];赋值:a[0]=1;a[1]=2;声明+创建: Integer a[]=new Integer(2);//另开辟内存指向新空间public class Array{public static void main(String args[]){String a[]={"奥林","花园","在哪里"};String b[]=new String[5];Integer c[]=new Integer[3]; c[0]=1;c[1]=2;c[2]=3;b[3]="谁";b[4]="知道";System.arraycopy(a,0,b,0,3);//源,头,目标,头,长度,大小写特殊for(int i=0;i<b.length;i++) System.out.print(b[i]);for(int j=0;j<c.length;j++)System.out.print(c[j]); }}11.二维数组:静态初始化:int a[][]={{1,2},{2,3}};动态初始化:声明:int a[][];创建:a=new int[2][];具体行:a[0]=new int[2];a[1]=new int[3];赋值:a[0][0]=2;a[0][1]=3;a[1][0]=1;a[1][1]=4;a[1][2]=5;12. Java的类的成员的初始化顺序: 首先初始化所有的成员变量,然后初始化构造方法.最后初始化普通方法,而且普通方法只有在“对象名.方法名”中才会被初始化,这就是缓式初始化.13. 封装:a.把功能和属性包装成类.通过类的实例来实现;b.隐藏实现的细节;c.通过包把类组织起来;d.访问权限的控制.打包:package pac1;public class Pac{public void display(){System.out.println("正在打包");}}调试包:javac –d .\ Pac.java 使用包:import pac1.Pac14.访问权限:private:只能在类的内部调用,默认friend:在类的内部和同一个包中被调用public:类的内部,同一个包中其他类,包外的其他类都可以调用protected: 在类的内部和同一个包中被调用,但可以在包外被继承,通过.调用内部成员eg:class Robot{String name="liming";protected String display(){return(name);}} //换成private就出错class Person extends Robot{public void display2(){System.out.println(display());}}public class UseRobot1{public static void main(String args[]){Person n1=new Person(); n1.display2(); }}15.方法重载:同一个类中,方法名相同,参数不同,方法体不同;方法重写:不同的类中,方法体不同,参数相同,方法名也相同.方法重载的作用: 在有多个同名参数的类中,在调用时通过不同的参数来调用不同的方法. 方法重写的作用: 在继承中,子类可用方法重写,对父类进行扩充或改造.class Flower{int petalCount = 0; String s=new String("null");Flower(int petal){ petalCount=petal;System.out.println(petalCount);}Flower(int petal,String ss){this(petal);s=ss; System.out.println(s);}public static void main(String args[]) {Flower n1=new Flower(4,"dd"); Flower n2=new Flower(5);} }this:可以实现一个构造方法调用另一个构造方法,this(参数);普通方法不能调用构造方法,对this的调用必须是该构造方法的第一个语句(本类的)。
16.名称遮蔽:子类中若对父类进行方法重写,出现与父类同名的属性,则会将父类中与其同名属性遮蔽掉. 在子类中,如果要调用父类的构造方法,必须使用super(参数)调用,若要调用父类的普通方法则用super.方法名;调用.且子类中对super的调用必须是子类构造方法所做的第一件事.这样便可以绕过名称遮蔽。
class Test3{ int value=8; int display4(){ return value; }}class UseTest extends Test3{int value=9;int display5(){return value;}int display6(){return(super.value); }}class NiHao{ public static void main(String args[]){ UseTest n1=new UseTest();System.out.println(n1.display5());System.out.println(n1.display6());}}若父类没有空构造方法,若子类想初始化则子类必须有非空构造方法;则在子类构造方法中用super(参数)对父类初始化。