黑马程序员——JAVA学习笔记二(语法基础)

1,     Java程序都是以类的形式存在的,所以需要告诉虚拟机需要加载类的位置,那么可以设置classpath变量。classpath变量如果有;,则表示还会在当前目录查找,没有;则不会在当前目录查找。

当然如果没有classpath也会在当前目录查找。

2,    rd删除目录,加/S可以删整个目录,Windows从里向外删除。

3,    一个文件只有一个public类,文件名必须和类名相同,如果不是友好类,则不需要同名。

4,    JAVA一共有50个关键字

关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。

Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名。

java关键字描述列表

abstract //抽象方法,抽象类的修饰符

assert //断言条件是否满足

boolean //布尔数据类型

break //跳出循环或者label代码段

byte //8-bit 有符号数据类型

case //switch语句的一个条件

catch //和try搭配捕捉异常信息

char //16-bit Unicode字符数据类型

class //定义类

const //未使用

continue //不执行循环体剩余部分

default //switch语句中的默认分支

do //循环语句,循环体至少会执行一次

double //64-bit双精度浮点数

else //if条件不成立时执行的分支

enum //枚举类型

extends //表示一个类是另一个类的子类

final //表示一个值在初始化之后就不能再改变了

//表示方法不能被重写,或者一个类不能有子类

finally //try 语句不管是否发生异常都要执行的语句块

float //32-bit单精度浮点数

for //for循环语句

goto //未使用

if //条件语句

implements //表示一个类实现了接口

import //导入类

instanceof //测试一个对象是否是某个类的实例

int //32位整型数

interface //接口,一种抽象的类型,仅有方法和常量的定义

long //64位整型数

native //表示方法用非java代码实现

new //分配新的类实例

package //一系列相关类组成一个包

private //表示私有字段,或者方法等,只能从类内部访问

protected //表示字段只能通过类或者其子类访问

//子类或者在同一个包内的其他类

public //表示共有属性或者方法

return //方法返回值

short //16位数字

static //表示在类级别定义,所有实例共享的

strictfp //浮点数比较使用严格的规则

super //表示基类

switch //选择语句

synchronized //表示同一时间只能由一个线程访问的代码块

this //表示调用当前实例

//或者调用另一个构造函数

throw //抛出异常

throws //定义方法可能抛出的异常

transient //修饰不要序列化的字段

try //表示代码块要做异常处理或者和finally配合表示是否抛出异常都执行finally中的代码

void //标记方法不返回任何值

volatile //标记字段可能会被多个线程同时访问,而不做同步

while //while循环

5,    标示符,Java标识符由数字,字母(中文也可以,因为UNICODE编码)和下划线(_),美元符号($)组成。在Java中是区分大小写的,而且还要求首位不能是数字。下划线主要用在常量中,$用在内部类中,在方法,变量名中少用他们,用驼峰命名方式。

6,    注释,单行注释,多行注释,文档注释。文档注释/**开头,*/结尾。多行注释不可以嵌套,所以单行注释方便。注释不会被编译到类文件中,会擦出掉。注释不是越多越好。

7,    写代码,不必先着急写代码,首先需要分析。1需求 ,2思路,3步骤。

8,    字面值常量,小数,整数,boolean,字符,字符串,null,常量。

9,    变量时内存空间中的一块区域,该区域有自己的名称和类型,该区域的数据可以变化。变量的作用域只在{}中有效。

10,    基本数据类型 和 引用数据类型

整型:byte(8bits -128 ~127) short(16bits -2^16 ~2^16) int(32bits  -2^32 ~2^32) long(64bits  -2^64 ~2^64),还有一个类(BigInteger类会代替范围不够大),JAVA7前可以加上0b表示二进制。还可以为数字字面值加上下划线,如1_0000_0000 ,JAVA编译器会去除这些下划线。

浮点类型: float(32bits 6~7位有效数字) double(64bits 15位有效数字) ,三个特殊的浮点数职:正无穷大Double(Float).POSITIVE_INFINITY、负无穷大Double(Float).NEGATIVE_INFINITY、Double(Float).NaN(不能检测一个特定值是否等于==它,判断两个浮点数是否相等要小心),因为误差大,所有有一个类(BigDecimal)会代替。Math.random()返回一个随机浮点数(0~1)。

如果追求性能用Math库(sqrt,pow(x,a),tan,sin,cos,exp,log, log10 PI,E),否则用StrictMath库。

字符类型:char  (16bits )

布尔类型:boolean(大小不确定)

整数默认是:int  小数默认是:double

接口类型:interface

类类型:calss

枚举类型:enum

数组类型:[]

默认初始化:int 0,小数,0.0 ,布尔 false,字符:‘\U0000’,String: null;

11,    类型转换: 自动类型转换,两个数值进行二元操作时,首先需要将两个操作数转换成同一种类型再计算。

1,如果有一个操作数double,另一个操作数自动转化为double.

2,如果有一个操作数float,另一个操作数自动转化为float.

3,如果有一个操作long,另一个操作数自动转化为long.

4,否则,两个操作数都转化为int.

强制类型转换,可能会丢失精度,强制类型转换通过截断小数部分将浮点值转化为整型。如果需要四舍五入用MATH.round(x).

12,    运算符优先级别,1,[]. ()(方法调用) 2,一元操作符 3,二元操作符 (instanceof) 3,移位运算符 4,逻辑运算符  5,位运算符 (对移位运算符的右侧的参数需要进行模32的运算(除非左边是long,右边则对64求模))6,逻辑运算符 7,条件运算符 8,赋值运算符 9,逗号操作符

13,

switch语句特点:

1、switch语句选择的类型只有四种:byte,short,int,char。JAVA7支持String。
2、case与default没有顺序。先执行第一个case,没有匹配的case执行default。
3、结束switch语句的两种情况:①遇到break,②执行到switch语句结束。
4、如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。

5、进入switch语句后,执行顺序是先执行case,然后从上到下,最后再执行default。即使default放在case上面,执行顺序也不变。

14,    循环控制语句,for while.可以有标签操作,但是必须放在要跳出循环外面,跳出指定最外层循环,for()中可以用逗号操作表达式。for each只需要实现Itreable接口即可。

15,    函数:函数是传值调用,函数重载:

在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。与返回值类型无关,方法名以及参数类型叫做方法的签名。

16,    数组:数组分配在堆上,可以分配大小为0的数组,数组支持for each,int[] buf = {1,2,3}只能出现在定义时初始化。数组工具类:Arrays.toString(T[])或者Arrays.deepToString打印数组.  Arrays.fill() ,Arrays.copyof(),Arrays.sort(). Arrays.binarySearch();

时间: 2024-12-17 05:13:57

黑马程序员——JAVA学习笔记二(语法基础)的相关文章

黑马程序员——JAVA学习笔记十(IO)

1,    可以从其中读入一个字节序列的对象成为输入流,可以向其中写入一个字节序列的对象就做输出流.这些字节序列的来源地可以是文件,也可以是网络连接或者内存块.抽象类InputStream和OutputStream构成了I/O层次的基础.因为字节流不便于处理以Unicode存储的信息,所以有了Writer和Reader抽象类,这些从其中继承的类都是读入和写入基于2个字节的Unicode码元,而不是单个字节.   2,    InputStream 与OutputStream: abstract

黑马程序员——JAVA学习笔记十四(高新技术三)

10 代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息.过滤消息.把消息转发给委托类,以及事后处理消息等.代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供定的服务. 按照代理的创建时期,代理类可以分为两种. 静态代理:由程序员创建或特定工具自动生成源代码,再对其编译.在程序运行前,代理类的.class文件就已经存在了. 动态代

黑马程序员——JAVA学习笔记五(异常)

1,     异常:是在运行时期发生的不正常情况. 在java中用类的形式对不正常情况进行了描述和封装对象.描述不正常的情况的类,就称为异常类. 以前正常流程代码和问题处理代码相结合,现在将正常流程代码和问题处理代码分离,提高阅读性. 其实异常就是java通过面向对象的思想将问题封装成了对象,用异常类对其进行描述. 不同的问题用不同的类进行具体的描述.比如角标越界.空指针异常等等. 问题很多,意味着描述的类也很多,将其共性进行向上抽取,形成了异常体系. 不正常情况分成了两大类: Throwabl

黑马程序员——JAVA学习笔记十二(高新技术一)

 1,    静态导入: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 package com.solaire.enhance; import static java.lang.Math.max;  //import   语句可以导入一个类或某个包中的所有类 //import static  静态导入 JDK5以后才有.语句导入一个类中的某个静态方法或所有静态方法 //无名包和有包名中的类在一起,没有package,则为无名包. //一个类

黑马程序员——JAVA学习笔记十三(高新技术二)

8,    注解 Annotation(注解)是JDK5.0及以后版本引入的. 注解是以 @注解名 的形式标识 注解不会影响程序语义,只作为标识 注解是新的类型(与接口很相似),它与类.接口.枚举是在同一个层次,它们都称作为java的一个类型(TYPE). 它可以声明在包.类.字段.方法.局部变量.方法参数等的前面,用来对这些元素进行说明,注释. 它的作用非常的多,例如:进行编译检查.生成说明文档.代码分析等 注释类型 是一种特殊的接口 用 @interface 声明如 [email prote

黑马程序员----java学习笔记之数组、二维数组,附相关面试题

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 一:数组(掌握) (1)数组:存储同一种数据类型的多个元素的容器. (2)特点:每一个元素都有编号,从0开始,最大编号是长度-1. 编号的专业叫法:索引 (3)定义格式 A:数据类型[] 数组名; B:数据类型 数组名[]; 推荐是用A方

黑马程序员——JAVA学习笔记六(多线程)

1,    什么是多线程?一个程序可以执行多个任务,每一个任务称为一个线程,运行多个线程的程序称为多线程程序. 进程:正在进行中的程序(直译). 线程:进程中一个负责程序执行的控制单元(执行路径).   多线程的好处:解决了多部分代码同时运行的问题.多线程的弊端:线程太多,会导致效率的降低. 其实,多个应用程序同时执行都是CPU在做着快速的切换完成的.这个切换是随机的.CPU的切换是需要花费时间的,从而导致了效率的降低 2 ,    创建线程方式:  创建线程方式一:继承Thread类 1.定义

黑马程序员——JAVA学习笔记十一(文件操作File)

为了很方便的代表文件的概念,以及存储一些对于文件的基本操作,在java.io包中设计了一个专门的类——File类. 在File类中包含了大部分和文件操作的功能方法,该类的对象可以代表一个具体的文件或文件夹,所以以前曾有人建议将该类的类名修改成FilePath,因为该类也可以代表一个文件夹,更准确的说是可以代表一个文件路径. 1.创建文件 1)boolean java.io.File.createNewFile() throws IOException用来创建文件,如果文件存在,创建失败,返回fa

黑马程序员——JAVA学习笔记八(集合)

1,    JAVA最初版本只为最常用的数据结构提供了很少的一组类:Vector.Stack.Hashtable.BitSet与Enumeration接口,从JAVA1.2版本开始推出了一组功能完善的的数据结构. 集合类的由来:  对象用于封装特有数据,对象多了需要存储,如果对象的个数不确定.  就使用集合容器进行存储. 集合特点: 1,用于存储对象的容器. 2,集合的长度是可变的. 3,集合中不可以存储基本数据类型值. 4,接口与实现相互分离. 集合框架是为表示和操作集合而规定的一种统一的标准