基础java课堂笔记.docx

上传人:b****5 文档编号:7675738 上传时间:2023-01-25 格式:DOCX 页数:25 大小:27.03KB
下载 相关 举报
基础java课堂笔记.docx_第1页
第1页 / 共25页
基础java课堂笔记.docx_第2页
第2页 / 共25页
基础java课堂笔记.docx_第3页
第3页 / 共25页
基础java课堂笔记.docx_第4页
第4页 / 共25页
基础java课堂笔记.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

基础java课堂笔记.docx

《基础java课堂笔记.docx》由会员分享,可在线阅读,更多相关《基础java课堂笔记.docx(25页珍藏版)》请在冰豆网上搜索。

基础java课堂笔记.docx

基础java课堂笔记

Java语言基础Day01

2011/7/29

====================

1.Linux简介

1)文件系统

2)当前工作目录,就是当前正在使用的默认文件夹

文件夹=目录

pwd打印(显示)当前工作目录

3)用户主目录(userhome),是属于当前登录用户个人的目录

个人主目录,用户拥有对自己用户主目录全部管理权限.

4)mkdir创建文件夹

mkdirdemo在当前文件夹(工作目录)里创建文件夹demo

5)cd切换(更改)当前工作目录

..代表上层目录,cd..切换到上层目录

.代表当前目录

cd指定的目录

cd/到跟目录

cd/home/liucs到主目录

cd命令默认返回用户主目录(userhome)

6)ls显示文件夹内容

7)绝对路径和相对路径

A以跟(root)"/"为开始的路径是绝对路径

B不是以"/"开始的是相对路径,相对路径默认相对于当前目录

8)rm-rfdir删除目录

9)启动eclipse

cd/opt/eclipse

./eclipse

2.Java简介

1)java特点:

简单,面向对象,跨平台,安全,多线程支持

2)java的跨平台

Java通过JVM实现了跨平台技术

Java源代码(*.java)经过Java的编译器编译成

Java字节码(*.class),执行Java字节码,Java字节码

经过JVM的解释为具体平台的具体指令,并执行。

不同平台有不同的JVM,主流平台都提供了JVM。

所以

JAVA字节码可以在所有平台上能够解释执行。

在这个

意义上Java是跨平台的。

也就是说:

Java的字节码

是跨平台的。

3)JavaJDK

JDKjava开发工具包/opt/jdkor/opt/jdk_1.6.01

|--bin开发工具(命令:

java,javac,jar,javad,jar,rmic,jps...)

|--jreJREJava运行环境

|--lib(rt.jar)JavaAPI(应用编程接口,系统类库)

|(java提供的现成组件)

|--bin(java_vm)JVMJava虚拟机

3.JavaAPP

1)HelloWorld.java

packagebasic.day01;

/**

*eclispe自动将当前文件编译到:

*workspace/JSD1105/bin/basic/day01/HelloWorld.class

*(工作空间/项目/bin/包文件夹/类文件)

*执行时候,执行这个类文件.

*@authorteacher

*/

publicclassHelloWorld{

//java软件的入口方法

publicstaticvoidmain(String[]args){

//在控制台输出“HelloWorld!

System.out.println("HelloWorld!

");

}

}

2)Java的编译

project

|--src

||--basic.day01

|||--HelloWorld.java

||--basic.day02

|||--JFrameHelloWorld.java

|--bin

||--basic.day01

|||--HelloWorld.class

||--basic.day02

|||--JFrameHelloWorld.class

4.Java的注释,被Javac(编译器)忽略的部分

1单行注释//...

2多行注释/**/

3文档注释/***/

5.Eclipse(日食/月食)

1)来自IBM开源,有eclipse.org基金会维护开发

是主流的Java开发平台,可以开发:

PHP,Ruby,Android

SUN对这个软件很有意见.

eclispe是Java开发的,需要JDK来运行

2)eclipse.org下载

3)JDK:

预习:

java变量类型,运算符等

 

Java语言基础Day02

2011/8/1

====================

1.Java变量

1)变量就是自然语言中的代词

Personhe;intage=15;

//age=00000000000000000000000000001111

System.out.println(age);//15

2)Java中的变量,Java是强类型语言,

A变量必须声明,并且初始化以后使用

B变量必须有明确的类型

C变量不能重复定义

3)变量的作用域

a在声明的地方开始,到块结束为止

b离开变量的作用域结束,变量将回收。

2.进制转换基础

1)十进制

逢10进1

基数:

10

权:

10^n,100001000100101

23678(10)=2*10000+3*1000+6*100+7*10+8*1

=2*10^4+3*10^3+6*10^2+7*10^1+8*10^0

=23679

2)二进制

逢2进1

基数:

2

权:

2^n,1286432168421

01000001

(2)=1*64+1*1

=65(10)

3)补码基础

-1281000000011111111111111111111111110000000

102进制......

84211111011111111111111111111111111111110111

-810001111100011111111111111111111111111111000

-7100111111001

-6101011111010

-5101111111011

-4110011111100

-3110111111101

-2111011111110

-1111111111111

0000000000000

1000100000001

2001000000010

3001100000011

4010000000100

5010100000101

6011000000110

7011100000111

0000100000000000000000000000000000001000

.......

1270111111100000000000000000000000001111111

补码运算:

-11111

-11111

*

----------

1111

1111

1111

1111

101010

-----------

0001

4)AJava内部只有二进制补码

BJava内部采用补码运算,自动发送上溢出和下溢出

CJava内部没有10进制!

但是Java尽量按照人类习惯输入输出

D补码的负数最高位是1,也称作符号位

5)16进制,是2进制的简写,方便专业人员书写2进制数据

16进制

逢16进1

基数:

16

权:

16^n,256161

16进制数字:

0123456789abcdef

0123456789101112131415

41(16)=4*16+1*1

=65(10)

=01000001

(2)

84218421

41(16)

1286432168421

01000001

练习:

转换以下十进制为二进制192(10)137(10)145(10)

192(10)=11000000

(2)

c0(16)

-8(10)=fffffff8(16)

3.Java数据类型:

分为引用类型和基本数据类型

1)基本数据类型:

8种

byte,short,int,long

float,double

char

boolean

2)整数类型byte,short,int,long,都是有符号(补码)整数

byte8位补码最大值0x7f127最小值0x80-128

short16位有符号数0x7fff327670x8000-32768

int32位0x7fffffff2G-12^31-121亿0x80000000-2G

long64位....

整数字面量(直接量)默认是int类型,如果不超出范围,可以给小类型直接赋值.

使用整数类型(byte,short,int)要注意取值范围,超范围运算

java底层byte,short按照32位计算;

long类型的字面量使用"L","l"后缀

3)浮点数,小数(不必掌握浮点数的存储方式)

浮点数原理:

10进制浮点数(科学计数法)原理

2356189.=2.356189*10^6

概念:

尾数:

2.356189

指数:

6

基数:

10

pi=3.14

3.1415926535897932384626433

二进制浮点数:

101001010101.=1.01001010101*2^1011

概念:

尾数.010********

指数:

1011

基数:

2

float:

32位其中:

1位符号位,8位指数,23位尾数

精度:

23位

intmax=01111111111111111111111111111111

floatf=1.11111111111111111111111*2^00011110

double:

64位其中:

1位符号位,11位指数,52位尾数

浮点数的字面量:

默认是double,Dd后缀是double,fF是float

4)字符类型char,字符是一个16位无符号整数,是一个二进制数数值是一个字符的unicode编码值.

unicode编码:

是全球范围内的编码方法,编制了英文,中,日,韩,阿拉伯,希伯来,.....8万+字符.其中英文部分与ASCII兼容,英文字符和数字是连续编码的.

ASCII:

0~128

Javachar的范围0~65535不能表示全部unicode但是可以表示unicode只能够最常用的部分

*最小值:

0,最大值:

65535=2^16-1

*字符字面量使用单引号为定界符号:

'中'

字面量也是整数常量!

特殊字符采用转义字符表示:

如:

'\n''\t''\\''\b''\r'

'\'''\"''\u4e2d'

charc='\\';

5)boolean布尔类型表达:

真(true)/假(false)

建议使用长变量名定义变量

booleanstarted=true;

booleanisMan=true;

isMan=false;

booleanused=true;//二手的

if(used){

System.out.println("打八折");

}

不建议定义没有意义的变量

booleanu=true;//u=you

booleanflag=false;

if(flag){

System.out.println("打八折");

}

4.数据类型转换

char->

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

1)自动类型转换,正方向,小类型到大类型的转换会自动完成

符号位会自动扩展,负数补1,正数补0,保证补码数值不变

注意,整数到浮点数转换会损失精确度

自动类型转换也叫"隐式类型转换",是自动发生的,一般不需要处理

inti=-1;

longl=i;

2)强制类型转换(显示类型转换),需求明确处理,是按照反方向,进行的转换,这种转换会溢出,或者损失精度.要注意数据的范围

inti=128+256;//00000000000000000000000110000000

byteb=(byte)i;//-128

longl=0xf80000000L;

intc=(int)l;//负数

l=8;

intd=(int)l;

floatpi=(float)3.1415926535;//损失精度

charc='0';

charx=(char)(c+2);

作业:

1复习并且完成全部课堂演示代码,添加适当的

输出语句,研究输出结果,添加适当的注释.

2尝试计算10个以上255以内的整数转换为2进制,

16进制,相互转换.并且编程验证计算结果

提示:

System.out.println(Integer.toHexString(234));

3(选做)定义方法:

参数是一个整数类型,没有返回值,在

方法中输出这个整数的10进制,2进制

16进制字符串

4尝试实现day02.png中的案例,在周末提交结果

5将人名字符的HEX编码输出,手工转换为二进制,并且验证结果

提示:

可以使用Scanner输入用户数据

预习:

Java运算符,流程控制语句.参考Day03.txt

Java语言基础Day03

2011/8/2

====================

1.Java的方法Method(函数Function)

1)方法就是函数:

y=f(x)=3x+6;

2)方法的语法

(修饰词)(返回值类型)(方法名)(参数列表){

//方法体

}

如:

publicstaticintf(intx){

inty=3*x+4;

returny;

}

4)如果有返回值定义就必须有return语句,返回和返回值类型

兼容的数据

5)方法的参数和方法内部的变量都是局部变量,

这些变量作用域只在方法内部!

6)实参:

方法调用时候实际传递的参数变量

形参:

方法的参数定义,是临时变量.

2.Java运算符

1)数学运算符+-*/%

A运算的封闭性(补码运算的封闭性):

1.同种类型参与运算(可能需要自动类型转换)

2.返回同种类型(可能发生:

上溢出和下溢出)

3.byte,short,char按照int运算

如:

inta=1+'A';

B.整数的除法是整除,除以2相当于移位运算(移动小数点)

C.Java中字面量的运算被Javac优化了,优化为一个固定的常量.

D.%计算除法的余数

1.0对其他数的余数是0

2.n%3是周期函数,函数值[0,3)

3.负数的余数是负数(考试可能出现,工作中很少用)

2)自增(自减)运算++--

1.可以将当前变量自我增加(减少)1

2i++,后++,先将i的值作为整个表达的值,然后将i增加1.

3++i,先++,先将i增加1,然后将i的值作为整个表达的值.

3)逻辑与比较运算

1.逻辑运算与(并且)&&或(或者)||非(否则)!

非短路的逻辑运算&|,比较少使用,逻辑不合理

2.比较运算,比较变量的值,就是逐个"位"比较值:

>>=<<===!

=

基本类型变量的值就是基本值如:

i=1

引用类型变量的值是对象地址值.(在面向对象阶段详细讲解)

inti=1;

longl=1;

System.out.println(i==l);//true

4)条件运算符(3元运算符)

语法:

条件表达式?

表达式1:

表达式2

当"条件表达式"为true时候,表达式1作为整个表达式的值,

否则表达式2作为整个表达式的值

如:

booleanisBoy=true;

intlevel=isBoy?

2:

3;//2

3.分支流程控制

1)if...else

语法:

if(布尔表达式){

//语句块..

}else{

//语句块

}

嵌套:

if(布尔表达式){

//...

}elseif(布尔表达式){

//...

}elseif(布尔表达式){

//...

}else{

//...

}

2)switch...case

语法:

switch:

开关,case:

情况下

switch(整数表达式){

case整数常量1:

//语句序列

break;

case整数常量2:

//语句序列

break;

default:

//语句序列

}

A.switch条件:

只能是整数(intbytecharshort)表达式

switch不能处理long或其他类型

B.case只能是整数(intbytecharshort)常量,不能使用

变量及表达式.如:

'中'

C.break跳转到switch结束继续执行,可以根据业务逻辑是否使用

经常都写break

4.循环控制

1)While循环控制

语法:

while(布尔表达式){

//循环体语句序列

}

作业:

1复习并且完成全部课堂演示代码,添加适当的

输出语句,研究输出结果,添加适当的注释.

2重构课堂案例,将参数通过Scanner输入

3重构课堂案例,加入while循环,增加输入信息合理性判断.

4(选做)案例练习输出等额本息还款计划表

如(示例):

月份本金利息归还

第1月9307121642

第2月9407011642

......

预习:

流程控制语句for(),do...while,Java数组.参考Day04.txt

i++%b

(int)a+b

y=g(x)=3*x*x+2*x+4;

 

Java语言基础Day04

2011/8/3

====================

1.while

While循环控制

Scannerconsole=newScanner(System.in);

while(布尔表达式){

qty=console.nextInt();

if(qty>0&&qty<=5){//五个以内

break;//打断,打断当前循环

}

}

2.for循环(主要用于几次的循环)

循环控制

for(初始化表达式;布尔表达式;递增表达式){

//循环体

}

Example:

for(inti=0;i

System.out.println(i);

}

3.do...while

do...while()循环控制

do{

//循环体

}while(布尔表达式);

Example:

do{

System.out.print("输入押注数量:

");

bet=console.nextInt();

}while(bet<=0||bet>balance);//否定条件

4.JavaArray

1)数组变量的声明

int[]ary;声明了数组变量ary,数组变量是代词,

intary[];为了与C语法兼容的写法,不建议写法,

2)数组对象动态初始化

ary=newint[4];//数组变量引用了具体数组对象,就是代词

指代了具体事务.

数组元素是自动初始化的,自动初始化为"零"值.

"零"值:

0,0.0,\u0000,false,null

ary=newint[]{1,2,3};直接给出元素的初始化

3)数组对象的静态初始化,只能用在声明数组变量时候同时初始化

*不能用于赋值语句

int[]ary={1,2,3};

ary={3,4,5,6};//编译错误

Java关键字:

if,public,class,else,while

特殊关键字:

goto,const

java中true,false,null不是关键字,是字面量!

4)数组变量,数组对象,数组元素

如:

int[]ary={1,2,3};

ary是数组变量指代一个具体的数组,同一个变量指代不同的数组

{1,2,3}数组对象

1,2,3是数组元素

5)数组元素的访问,数组对象的大小是固定的,长度是n,下标:

0~n-1

A使用[下标]访问数组元素

B越界访问(小于0/大于等于n),都会发生运行异常

C使用.length属性可以获取数组对象长度

5数组的复制与动态扩展算法

1)数组对象的复制

2)数组的扩展问题

1Java数组对象的大小是固定的,数组对象是不能扩展的

2利用数组复制到方法可以变通的实现数组扩展

3System.arraycopy()可以复制数组

4Arrays.copyOf()可以简便的创建数组副本

5创建数组副本的同时将数组长度增加就变通的实现了

数组的扩展

案例1:

统计一个字符在字符串中的所有位置.

字符串:

统计一个字符在字符串中的所有位置

字符:

'字'

返回:

{4,7}

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

当前位置:首页 > 法律文书 > 辩护词

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1