Java 学习笔记.docx

上传人:b****4 文档编号:2994721 上传时间:2022-11-16 格式:DOCX 页数:54 大小:77.28KB
下载 相关 举报
Java 学习笔记.docx_第1页
第1页 / 共54页
Java 学习笔记.docx_第2页
第2页 / 共54页
Java 学习笔记.docx_第3页
第3页 / 共54页
Java 学习笔记.docx_第4页
第4页 / 共54页
Java 学习笔记.docx_第5页
第5页 / 共54页
点击查看更多>>
下载资源
资源描述

Java 学习笔记.docx

《Java 学习笔记.docx》由会员分享,可在线阅读,更多相关《Java 学习笔记.docx(54页珍藏版)》请在冰豆网上搜索。

Java 学习笔记.docx

Java学习笔记

Day01;

JVM---Java虚拟机

JRE---Java运行环境

JDK---Java开发包,其中包含JRE

Java的跨平台性

JDK的下载,安装,环境变量的配置

HELLOWORLD第一个程序编写

Classpath环境变量配置,虚拟机先行在环境变量目录下找寻class文件然后才在当前目录下找,也就是说classpath环境变量的优先级大于当前目录。

当配置临时classpath路径时,在路径末加上分号时classpath路径没有对应的class文件,会在当前目录找寻相应的class,反之,若末尾没有分号,则仅在classpath配置路径找寻对应的class文件,不再在当前目录下找寻。

Path环境变量配置时与classpath相反,它会先在当前目录下寻找,然后才找配置的路径。

PS:

我们在配置classpath路径时,以不加分号为好。

如果需要在当前目录下寻找,可以在配置时参照:

classpath=.;c:

\;d:

\前边.代表当前目录。

HelloWorld程序组成部分:

classDemo()//定义一个类

{

publicstaticvoidmain(String[]args)//主函数

{

System.out.println(“HelloWorld”);//输出语句

}

}

class:

关键字,用于专门定义类。

Demo:

类名规范(首字母大写,如果由多个字母组成,每个单词首字母大写)

一般定义有意义的名称,加强易读性。

{}:

一对大括号类区间。

主函数:

publicstaticvoidmain(Stringargs[])保证类能独立运行,程序的入口。

注释:

//------单行注释

/**/------多行注释

/***/------文档注释(开发者使用)javadoc.exe

注解说明程序,调试程序,一边写代码,一边写注释,方便后期维护。

需求分析设计:

需求思路步骤代码

需求:

定义一个HelloWorld小程序;

思路:

(解决问题的思想,可以不涉及代码)

1.

2.

...

步骤:

1.通过class关键字定义一个类,将代码都编写到该类中;

2.为了保证该类的独立运行,在类中定义一个主函数;

3.保存成一个扩展名为JAVA的文件;

4.在DOS控制台中通过javac工具对java文件进行编译;

5.再通过java命令对生成的class文件进行执行。

一个源文件只能有一个public类;被public修饰的类存储源文件时源文件名要与类名保持一致,如果一个源文件出现多个被public修饰的类,源文件不确定存储为什么名字。

Day02;

数据类型:

基本数据类型:

(简单数据类型–语言所内置的类型)

布尔型:

Boolean(true/false)*:

纯粹的java中数值不能给Boolean赋值

字符型:

char16bit–0个符号位,全部都是数值位

charc1=‘a’;//直接指定字面值

charc2=97;//ASCII

charc3=‘\u4e2d’;//i18nnative2ascii

charc4=‘\t’;//转义字符

整数型:

byteshortintlong符号

(1)+数值位(n-1)

8163264

intnum1=25;//10进制赋值DEC

intnum2=025;//8进制赋值OCT

intnum3=0x25;//16进制赋值HEX

intnum4=0b1011;//2进制赋值JDK7.0BIN

*:

十进制二进制的转换

76=64+8+4=01001100

1248163264128256512102420484096819216384…

*:

long定义结束之后可以加L,超出int范围必须加L.

浮点型:

符号位+幂指位+数值位

float

32(1+8+23)F/f

double

64(1+11+52)D/d

67.25=>

得到符号位:

0

整数部分:

64+2+1=1000011

小数部分:

0.01

1000011.01=>科学计数法:

1.00001101*2(6)

0.25*2=0.5;

0.5*2=1.0;

0.0*2=0.0;

幂指位8位:

127+6=01111111+0110=133=10000101

数值位(科学计数法中小数点后面部分):

00001101

01000010100001101000000000000000

*:

IEEE754浮点单精度和双精度的存储规范

*:

计算机当中2.0–1.1等于多少?

为什么?

怎么解决?

引用数据类型:

(自定义类型–自己写的类型Object)

PS:

负数的二进制表现形式:

就是负数的绝对值取反+1,负数的最高位都是1.

字符型和整型相加字符型提升为整型再行相加.

三元运算符,可做简易ifelse语句的简化:

变量=(条件表达式)?

表达式1:

表达式2;

因为是一个运算符,所以运算完必须要有一个结果。

进制转换:

二进制=>十六进制1.最低四位&152.依次>>>4位并&15即可.

二进制=>八进制2.最低三位&72.依次>>>3位并&7即可.

运算符:

1.+-*/%

[+:

]1+1什么情况下不等于2?

当字符串String和数值型进行+号连接时,不是代表数学运算,而是追加连接

[*:

]

数值在进行乘法运算时很容易超出数据边界,发生溢出

*:

int数据类型超过2147483746,后面要加L

*:

商品价格7折优惠

intprice=924;

//price=(int)(price*0.7);

price=price*7/10;

[/:

]

Java当中整数除以整数结果一定为整数

[%:

]

最终结果的符号位取决于参与运算的第一个数字的符号:

5%2=1;

5%-2=1;

-5%2=-1;

-5%-2=-1;

2.+=-=/=%=

[能够自动保持运算符左侧数据类型不发生任何变化]

intnum=3;

num+=1.5;

3.<><=>====

[区别==判断等,=赋值等]

4.&|&&||

[&逻辑非短路运算符][&&逻辑短路运算符]

[当通过前面的条件能够得出最终结论的时候,短路运算符会舍弃之后没有必要的无用功]

5.++--

[++在后,先取值再计算;++在前先计算再取值]

6.&|^~

[按位运算符]

*:

当一个正数%2的n次方数时,将完全等价于&(这个数2的n次方-1)

%2%4%8%16%32%64……

&1&3&7&15&31&63……

*:

数据结构集合存放数据的容器

HashsetHashmap(mustbeapoweroftwo)=>必须是2的n次方

(&分组组数-1)

JoshBlochJava之母

*:

当实现权限控制模块的时候

Unix:

1代表执行权限

2代表写入权限

4代表读取权限

查询某个数中是否有1,2,4….时。

可以用&相应数值来实现

Java修饰符当中:

public=1static=8publicstatic=1+8=9=staticpublic

*:

^按位异或运算符

如何不借助第三块空间交换两个变量的值:

a=a^b;

b=a^b;

a=a^b;

一个数与另一个数异或两次等于它本身

7.<<>>>>>

[位移运算符]

*2*4*8*16

<<1<<2<<3<<4

*:

“>>右移,高位补符号位”右移一位表示除2“>>>无符号右移,高位补0”;

*:

结合按位运算符和位移运算符能够进行简单的图形图像处理

PS:

1st:

如何不借助第三块空间交换两个变量的值

2nd:

计算机如何最高效的求出2的3次方

3rd:

计算144–237之间所有数字累加的和,禁用循环

Day03;

流程控制:

分支:

ifelse[利用其排他特性简化判断条件]

switchcase[注意利用break机制实现相邻分支的代码共享]

*:

while:

先判断条件,只有条件满足才执行循环体。

dowhile:

先执行循环体,再判断条件,条件满足,执行循环体。

break语句:

应用范围:

选择结构和循环结构。

continue语句:

应用于循环结构。

这两个语句离开应用范围,存在是没有意义的。

这个两个语句单独存在下面都不可以有语句,因为执行不到。

continue语句是结束本次循环继续下次循环。

标号的出现,可以让这两个语句作用于指定的范围。

PS:

JDK7.0switch语句支持对字符串的判断。

Day04;

数组:

数组的定义方式:

元素类型[]数组名=new元素类型[元素个数或数组长度];

数组常见操作:

遍历获取最值排序(选择/冒泡)折半查找

编译的时候没有开辟数组空间,只有在运行才开辟.

Day05;

面向对象:

1.三个基本特征:

封装,继承,多态

2.类和对象的关系:

类就是对现实生活中事物的描述;对象就是这类事物实实在在存在的个体。

类是对象的抽象,对象的类的具体。

3.成员变量和局部变量:

成员变量作用于整个类中;局部变量变量作用于函数中,或者语句中。

成员变量:

存在堆内存中,因为对象的存在,才在内存中存在;局部变量:

存在栈内存中。

如果局部变量的名字和成员变量的名字相同,则成员变量被隐藏,即这个成员变量在这个方法内暂时失效。

这时如果想在该方法内使用成员变量,必须使用关键字this。

4.匿名对象使用:

方式一:

当对对象的方法只调用一次时,可以用匿名对象来完成,这样写比较简化。

方式二:

可以将匿名对象作为实际参数进行传递。

PS:

如果对一个对象进行多个成员调用,必须给这个对象起个名字,即不再使用匿名对象。

5.封装概述:

Encapsulation

用private将不想被外界访问的属性和方法隐藏起来,private私有成员只有在本类中可以使用;

封装对于类的开发者和使用者都有好处:

对于类的开发者:

能够让数据得到保密得到隐藏从而更加安全

对于类的使用者:

能够让使用者将精力全部集中在核心业务逻辑上

类的开发应当高内聚低耦合

内聚:

独立完成功能的能力

耦合:

模块与模块之间的依赖关系,"耦合"无处不在

所有的属性应当使用private修饰

并且提供两个public的方法sette

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

当前位置:首页 > 农林牧渔 > 林学

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

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