java核心杰普实训corejava.docx

上传人:b****6 文档编号:15639360 上传时间:2023-07-06 格式:DOCX 页数:83 大小:55.16KB
下载 相关 举报
java核心杰普实训corejava.docx_第1页
第1页 / 共83页
java核心杰普实训corejava.docx_第2页
第2页 / 共83页
java核心杰普实训corejava.docx_第3页
第3页 / 共83页
java核心杰普实训corejava.docx_第4页
第4页 / 共83页
java核心杰普实训corejava.docx_第5页
第5页 / 共83页
java核心杰普实训corejava.docx_第6页
第6页 / 共83页
java核心杰普实训corejava.docx_第7页
第7页 / 共83页
java核心杰普实训corejava.docx_第8页
第8页 / 共83页
java核心杰普实训corejava.docx_第9页
第9页 / 共83页
java核心杰普实训corejava.docx_第10页
第10页 / 共83页
java核心杰普实训corejava.docx_第11页
第11页 / 共83页
java核心杰普实训corejava.docx_第12页
第12页 / 共83页
java核心杰普实训corejava.docx_第13页
第13页 / 共83页
java核心杰普实训corejava.docx_第14页
第14页 / 共83页
java核心杰普实训corejava.docx_第15页
第15页 / 共83页
java核心杰普实训corejava.docx_第16页
第16页 / 共83页
java核心杰普实训corejava.docx_第17页
第17页 / 共83页
java核心杰普实训corejava.docx_第18页
第18页 / 共83页
java核心杰普实训corejava.docx_第19页
第19页 / 共83页
java核心杰普实训corejava.docx_第20页
第20页 / 共83页
亲,该文档总共83页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

java核心杰普实训corejava.docx

《java核心杰普实训corejava.docx》由会员分享,可在线阅读,更多相关《java核心杰普实训corejava.docx(83页珍藏版)》请在冰点文库上搜索。

java核心杰普实训corejava.docx

java核心杰普实训corejava

引言:

1、why:

CoreJava是整个Java体系的基础和核心,其他Java技术均是构建在CoreJava基础之上的。

2、What:

java语法基础:

字符集,条件语句,循环语句

java面向对象编程:

特征,高级特性,面向对象编程思想

javaIO流(输入输出)和文件操作

多线程编程

图形用户界面(GUI)编程

Java网络编程:

Socket编程

3、How:

Thinking+Coding+Testing;

ch01java入门

1、Java起源与发展

java起源于SUN公司的Green项目----》Oak

SUN公司在

推出java语言的同时,也推出了一系列开发工具,如:

JDK(javaDevelopmentKit)java开发工具包

时间版

本类库数量描述

1996JDK1.0250Applet

1997JDK1.1500图形用户界面编程

1998JDK1.2(java2.0)2300

全面支持企业及开发

2000JDK1.3(java2.0)

2002JDK1.4(java2.0)

2004JDK1.5

(java5.0)3500对语言本身做了重大改变,更稳定、更高效、更安全;---Tiger

2005

JDK1.6(java6.0)

补充内容:

java的应用版本:

JavaSE:

java标准版本,基础和核心,主要用来做java小程序,桌面程序;

JavaME:

java微型版本,主要用来做移动开发,游戏开发;

JavaEE:

java企业版本,主要用来做企业级开发;

JDK(javaDevelopmentKit)包括:

java虚拟机JVM:

编译、运行java程序,JVM可以运行在任何平台上;

javaAPI(java/JDK类库):

别人开发好的可以直接使用的类。

提供一些最基础和实用的java类,例如

java.lang,java.util,java.sql包中的类都处于javaAPI中;

开发工具:

这些开发工具都是可执行文件

javac.exe编译java源程序

java.exe运行java程序

javadoc.exe生成java说明文档

jar.exe打包工具

2、设置java开发环境

1)获取J2SDK

2)安装J2SDK

JDK安装目录下的文件夹简介:

bin:

表示java的可执行命令/文件

demo:

java的一些基本例子

include:

一些c程序,主要是和其它语言集成

jre:

java的运行环境,jdk必须有jre,java程序才能被处理

lib:

放置库函数,也称之为第三方文件

sample:

java的实例程序

src.zip:

java类库源代码

3)设置环境变量

JAVA_HOME:

设置为java安装目录,设置

目的是简化其他环境变量的设置;该变量可设可不设;

path:

设置java命令(工具)的路径范围,保证在操作系统的任何

位置调用java命令;该变量必须设置;%JAVA_HOME%\bin;

classpath:

设置java源文件的二进制文件的存储位置,一般设定为当前路径,默认为当前路径。

该变量可设可不设;

3、java是什么?

java是编程语言、开发环境、应用环境、部署环境。

订了规则并予以实现(JDK);

4、java的特点

1)简单功能强大的:

语法类似于C、C++;废弃了指针操作,自动内存管理;

Java提供了大量类库;

2)安全的:

无指针操作;严格的代码校验(校验器可以发现操作数栈的溢出,非法类型转化等错误);

3)

健壮的:

致力检查编译和运行时错误;强类型语言;自动垃圾内存回收;

4)纯面向对象的

面向对象是java语言最重要的特征,具

有封装、继承、多态等特征;java语言只支持面向对象编程,不支持类似于C那样的面向过程编程;C++既支持面向对象编程,也支持面向过程编程;

5)解释的:

java源程序先编译成结构中立的字节码文件,然后解释执行;C和C++是编译执行的,先编译成本地机器码文件,然后执行;

6)跨平台的(可移植的):

即“一次编译,处处执行”,通过JVM虚拟机实现的,其原理是为不同的OS提供不同JVM,但其编译生成字节码文件的规格相同;

java作为一门网络编程语言,编译生成结构中立的字节码文件,该文件可以运

行在任意一个具有java运行环境的机器上。

注意:

java语言的跨平台是通过JVM实现的,但是JVM本身并不跨平台;

7)多线程的:

java是一个从语言级支持多线程程序设计的编程语言,也就是可以直接通过java编程实现多线程。

多线程编程的简单性是Java成为流行的服务器端开发语言的主要原因之一

8)自动垃圾内存回收

垃圾:

无用对象占用的内存

垃圾回收:

无用对象占用的内存的回收

过程

C和C++要通过编程者自身通过编程实现内存的分配和回收,如果内存分配和回收不平衡时,将造成系统资源耗尽或者内存溢出

而导致程序异常终止,从而发生错误;

java中垃圾内存是由垃圾回收器线程在适当的时候自动回收。

当系统内存紧张时,回收;否

则不回收;

编程者也可以手动回收垃圾内存:

java.lang.System.gc()/java.lang.Runtime.gc();

5、JVM(javavirtualmachine

)java虚拟机:

利用软件来模拟一个虚拟的环境;

6、垃圾回收

7、java代码安全

8、第一个java程序

1)源文件:

包含java代码(符

合java语言规则编写的内容)的文件;

特征:

以.java为后缀名;可以包含多个类或者接口;文件名与类名或者接口(只包含一

个类或者接口)或者与public修饰的类或者接口(包含多个类或者接口)同名;

结构:

包声明:

可有可无,如果有只能有

一行并且必须处于第一行(注释除外);

import语句:

可有可无,可有多行,紧跟包声明语句;

类的声明语句;

2)

类:

java代码的组织单位,java代码就是由一个个类组织的,java编程就是编写一个个的java类;

3)方法、main方法

4)剖析类

package:

将类放入某一特定的包中,便于类的组织、权限访问和区分名字相同的类;

可以定义多级包,中间用“.”分开,包名.

包名....

引入包名后,类的名字为:

包名+类名;

java中包层次和文件系统中的目录/文件夹结构类似;

import:

导入一个或者多个

与本类不在同一包层次下的类文件;

importjava.io.File;

importjava.io.*;导入java.io包下的所有类,但是不包括其中子包下

的类;

java.lang包下的类默认导入;

9、常用的包:

java.lang:

包含一些Java语言的基本类与核心类,如String、Math、Integer

、System和Runtime,提供常用的功能,这个包中的所有类是被隐式导入的;

java.awt/javax.swing/java.awt.event:

包含编写与

平台无关的图形界面(GUI)应用程序的类;

java.io:

包含一些用作输入输出(I/O)处理的类,主要包括流的类;

包含用

于建立网络连接的类,与java.io同时使用完成与网络有关的读写;

java.util:

包含一些实用工具类和数据结构类。

像集合类、日

期类等。

10、JavaAPI:

JavaApplicationProgrammingInterface,java开发者预先定义好的供编程者直接使用的类库;

ch02

java语法基础

1、程序注释

为了增强程序代码的可读性,在java源文件中的任意位置均可以加入程序注释。

程序中加入注释语句,

在java程序编译时会被编译器忽略,无论在程序注释中添加任何东西,编译后程序不受任何影响。

单行注释:

//注释内容;

利用单

行注释,从符号//开始至换行之间的内容会被认为是注释内容编译时编译器会忽略;

例如:

intage;//age表示年龄

多行注

释:

/*.........*/,“/*”,“*/”之间为注释内容,必须成对出现,注释内容可以换行;

例如:

/*注释内容*/

或者

/*

注释内容

*/

为了美观可以写成:

/*

*注释内容

*/

文档注释:

和多行注释相似,任何声明之前均可加入文档注释,注释内容可被JavaDoc工具读取

作为JavaDoc文档内容,文档是对代码结构和功能的描述;

/**

*注释内容

*/

2、java代码编写基本规则

java语句以英文分号结束,为了程序代码的可读性最好占一行;

java代码块放在一对大括号之间;java允许一组语句放在一起用大括号括起来形成代码;例如:

循环体,语句块,类体,方法体;语句块可嵌套;

程序忽略空格、制表符、空行、续行符;

3、标识符

java中用来为类、方法、变量等所起的名字叫标识符;

规则:

标识符以字母、“_”、“$”开头,后可跟字母、“_”、“$”或者数字,无长度限制,大小写敏感,不能使用java的关键字、预留关键字以及有特殊用途的符号作为标识符;

有效:

abc$qw$$$q1_$$_

无效:

1q#qw

classtrue

注意:

goto和const虽然目前不是java的关键字,但是被作为预留关键字保留;

true,false,null具有特殊用途,不能

用做标识符;

Volatile修饰的成员变量在每次被线程访问时,都强迫从共享内存中重读该成员变量的值。

命名规范:

类和接口的

名字首字母要大写;方法名和变量名第一个单词字首字母要小写,其他首字母要大写;包名要小写;常量名要大写;所有的命名最

好不要用中文以及英文之外的其他语言;

4、数据类型:

一组性质相同的值的集合以及定义在该值集合上一组操作的总称;

程序的

基本功能就是处理数据,程序中用变量来表示数据,变量一定要先定义在使用;

常用的数据类型:

整型,浮点型,字符型,字符串

型,逻辑型

java中的数据类型分为基本数据类型和引用类型;

引用类型:

类类型,数组类型,接口类型等;

基本数据类型:

数值型

整型(字节型byte,short短整型,int整型,long长整型),浮点型(float单精度型,双精度型double)

逻辑型boolean:

只能

代表两种状态逻辑真或者假,用于判断现实中条件的成立与否,常用来进行逻辑运算和程序的流程控制;

在java中boolean型只能

取true或者false,不能像C语言中那样用0和非0的整数来代表true或者false;

字符型char:

2个字节,16位,无符号,用“'”括

起来;

chara='a';

chara='\u0061';

chara=ox0061;

chara=97;

转义字符:

以反斜杠开头

\n换行符,将光标定位当下一行

的开头;

\t垂直制表符,将光标定位到下一个制表符位置;

\r回车,将光标定位到当前行开始处,并不移到下一行;

\\

反斜杠

\'单引号

5、变量:

变量是用来记录值可以发生改变的数据的标识符,同样那么常量就是用来记录值不可以发生改

变的数据的标识符;

在计算机技术中,变量包括变量名和变量值,变量名标示一段特定的存储空间,变量值就是存放在该空间中的

二进制数据,可以被修改和访问;

变量的分类:

按照存储数据的数据类型分:

基本数据类型和引用类型;

按照声明的位置分:

局部

变量和成员变量(又称为实例变量);

局部变量:

声明在方法

内部或者代码块内;

成员变量:

声明在类的内部,方法的外部;

java中变量在声明和初始化后才能使用

成员变量定义在类的内部,在使用类创建对象时同时创建成员变量,进行系统默认初始化和

显示初始化;

方法形参局部变量,在调用方式进行隐式初始化;

变量的作用域和生命周期:

成员变量的作用和其所属对象相同,生

命周期随着对象的创建而创建,随着对象的销毁而销毁;

局部变量的作用域为其所在的方法内部或者代码块内部,生命周期就是方

法或者代码块的一次执行期间;

6、内存的逻辑分区

栈内存:

特定程序专用,先进后出的分配原则,存储空间分配连续,存储容量

小速度快。

通常存放局部变量;

堆内存:

所用应用程序公用,存储空间分配不连续,存储容量大速度慢。

通常存放成员变量、对象

代码区:

专门存放方法、代码块;

静态、常量存储区:

存放静态变量、常量;

7、理解对象

面向对象的开发方法把软件系统

看成各种对象的集合,对象就是最小的子系统,一组相关的对象能够组合成更复杂的子系统。

面向对象的开发方法将软件系统看成

各种对象的集合,接近人的自然思维方式。

对象是对问题领域中实体、事件的抽象。

对象具有以下特性:

1)万物皆为对象。

问题

领域中的实体和概念都可以抽象为对象。

例如学生,成绩单、教师、课和教室。

2)每个对象都是惟一的。

正如世界上不存在一模

一样的叶子。

3)对象具有属性和行为。

例如小张,性别女,年龄22,身高1.6m,体重40kg,能够学习,唱歌。

小张的属性包括姓

名、性别、年龄、身高和体重,行为包括学习、唱歌。

例如一部手机,牌子是诺基亚、价格是2000元,银白色,能够拍照、打电话

和收发短信等。

这部手机的属性包括品牌类型type、价格price和颜色color,行为包括拍照takePhoto(),打电话call(),收发短

信receiveMessage()和发短信sendMessage().

4)对象具有状态。

状态是指某个瞬间对象的各个属性的取值。

对象的某些行为会改

变对象自身的状态,即属性的取值。

例如小张本来体重为40kg,经为减肥后,体重减到45kg.

肥胖状态:

40kg

|

|减肥行为

|

肥胖状态:

35kg

5)每个对象都是某个类的实例

小张和小王都属于学生类、中国和美国都属于国家类、中文和英文都属于语言类。

类是具有相同属性和行为的对象的集合。

同一

个类的所有实例都有相同属性,但属性取值不一定相同,也就是它们的状态不一定相同。

例如小张和小王都属于学生类,都有姓名

、性别、年龄、身高和体重这些属性,但是他们的属性取值不同。

同一个类的所有实例都有相同行为,意味着它们具有一些相同的

功能。

8、类

类创建对象的模板,创建类语法为:

[]class[extendssuperclass][implements

interfacea,....]{

[]

[]

[]

}

饰符+返回类型+methodName(参数列表){

方法体;

}

void

9、实例化对象

new+构造方法

引用变量名.属性名或者方法名;

类创

建好之后,通过new关键字创建具体对象。

它有以下作用:

.为对象分配内存空间,将对象的实例变量自动初始化为其变量类型的

默认值;(Java对象的默认初始化规则:

数值型:

0或者0.0;字符型:

"\u0000";逻辑型:

false;引用类型:

null;)

.如实例

变量显示初始化,将初始化值赋给实例变量;

.调用构造方法;

.返回对象的引用;

注:

结合实例,并画内存分配图讲解。

10.基

本类型和引用类型的区别

1)基本类型代表简单的数据类型,比如整数和字符。

引用类型代表复杂数据类型,引用类型所

引用的实例包括操纵这种数据类型的行为。

通过"."运算符,就能访问引用变量所引用的实例的方法.

2)基本类型Java虚拟机会

为其分配数据类型实际占用的内存空间;

引用类型仅是一个指向堆区中某个实例的指针。

例:

public

classCounter{

intcount=13;

}

Countercounter=newCounter();

counter引用变量------------->Counter实例

count变量(占4个字节,值为13)

counter引用变量的取值为Counter实例的内存地址。

counter引用变量本身也占一定的内存空间,到底占用多少内存空间取决于Java虚拟机的实现,这对Java程序是透明的。

注:

counter引用变量到底位于Java虚拟机的运行时数据区的哪个区?

取决于counter变量的作用域,如果是局部变量,则位于Java

栈区;静态成员变量,则位于方法区;实例成员变量,则位于堆区;

要求:

写一个Teacher类,属性:

name,age,gender,salary

对于属

性赋值和取值并打印本对象信息

对老师的salary做操作--->写方法,给每个老师加薪,减薪

写一个测试类测试所写的方法

ch03表达

式、运算符、流程控制

1、运算符

算术运算符:

+-*/%++--;

自增自减符号:

可以放在变量的前面也可以放在后面,放在后

面表示先取变量值再自增或者自减1,放在变量前面先自增或者自减1再取变量值;

比较运算符:

>>=<<===!

=instanceof

引用

名instanceof类型名;

判断引用是否指向某一类型或者其子类型的实例;

逻辑运算符:

&&||!

&|^

语法:

进行逻辑运算的逻

辑值或者逻辑表达式

短路与:

&&

A&&B:

只有当A的值为true才会考虑B,A,B都为true时返回true,否则false;

短路或:

||

A||

B只有当A为false时才考虑B,A,B都为false时返回false,否则返回true;

位运算符:

&|^~

移位运算符:

<<>>>>>

对整数

的二进制数进行移位处理;

a<

将二进制形式的a左移b位,最高位b为抛弃,低位(右侧)空出的b位补0;

a>>b带符号右

移:

将二进制形式的a右移b位,最右侧的b为抛弃,最高位空出的b位补原来的符号位;

a>>>b无符号右移:

将二进制形式的a右移b

位,最右侧的b为抛弃,最高位空出的b位补0;

inta=5;

00000000000000000000000000000101

a<<2

0000000000000000000000000000010100

a>>2000000000000000000000000

000000010100000000000000101

inta=-5

1000000000000000

a>>>200000000000000000

0000000000000101

11111111111111111111111111111010

1111111111111111

1111111111111011

a<<21111111111111111111111111111101100

a>>21111111111111111

111111111111111011

a>>>20011111111111111111111111111111011

赋值运算符:

=

赋值运算符的左

边必须是已经声明过的变量,不能是常量或者复合表达式;

运算符左右两边必须是相同的数据类型,可以进行类型自动转换的除外

aE=b;

a=aEb;

条件运算符:

?

:

(条件表达式)?

(值1):

(值2);

字符串连接符:

+

2、表达式:

符合一定语法规则的运算符和操作

数组成的序列;

3、类型转换

基本数据类型转换和引用类型转换

基本数据类型转换:

隐式转换(自动转换):

从窄精度类型向宽精

度类型转换;intb=3;longd=b;

显示转换(强制类型转换):

从宽精度类型向窄精度类型转换;

longd=234;inta=(int)d;

byte

-->short-->int-->long-->float-->double

char-->int

引用类型转换:

隐式转换(自动转换):

让父类型的引用指向子类型实例(

对象);

Objectobject=newString("abc");

显示转换(强制类型转换):

让子类型引用转换为父类型;

Stringstr=(String)

object;

4、流程控制语句

顺序结构:

最简单的基本结构,按照语句顺序执行;

选择(分支)结构:

按照给定条件判断,条件为true

执行一个分支,为false执行另一个分支;

包括if选择结构和switch分支结构:

if选择结构:

b代表一个逻辑表达式

if(b){

statementorblock;

}

if(b){

statementorblock;

}else{

statementorblock;

}

if(b){

statementor

block;

}elseif(b){

statementorblock;

}elseif(b){

statementorblock;

}

.....

[else{

statementorblock;

}]

if选

择结构可以嵌套;

switch选择结构:

switch(expression){

case(常量1):

{

statementorblock;

break;

}

case(常量2):

{

statementorblock;

break;

}

......

[dafault:

{

statementorblock;

break;

}]

}

expression值的类型只能是int,byte,short,char,枚举,类类型之一;

break

使得执行完一个分支后跳出switch语句,从语法上来讲可以没有break,但是不合语

意;

default语句可以放在switch结构的任何位

置;

循环结构:

按照需要使得重复执行一行或者多行代码;

for循环:

用于循环次数已知的情况;

while循环:

又称为当型循环或者

前测试循环,该循环有可能一次都不执行;

do...while循环:

又称为直到型循环或者后测试循环,该循环至少执行一次;

foreach

循环:

*

***

*****

*******

*********

***********

i为行标

每行*的个数为2i-1个;

每行要打印n-i个空格;

break语

句:

用于终止所在的switch语句或者循环语句;用于终止循环时终止的是所在单层循环;

continue语句:

用于结束

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2