Java第一行笔记1、2章

Java程序分为两个操作:

     ·编译程序:javac Name.java,此时会形成Name.class文件,属于字节码文件 ;

     ·解释程序:java Name

·Java程序的组成:

  1. 所有Java程序都有一个最为核心的单元:类,而本次的程序使用了一个Name类名称。类有如下两种声明方式:

·public class 类名称{}:此时保存的文件名称必须与类名称保持一致 ;一个*.java文件里只能有一个public class定义;

·class 类名称{}:文件名称可以和类名称不一致,但是生成的*.class的文件名是与类名称一致的一个*.java里边可以定义多个class,但是编译后会生成不同的*.class文件;

总结:严格来讲,在以后的编写开发之中,每一个*.java文件里面都只会出现一个public class定义。但为了讲课方便,会在一个*.java里面出现多个类。

  1. 主方法:所有的程序都是由主方法开始执行的;

Public static void main(String args[]){

      要编写的程序代码;

}

为方便讲解,会把主方法所在的类使用public class定义,这个类我们称为主类;

  1. 屏幕输出两种方式:

·输出之后增加换行:System.out.println(内容);

·输出之后不增加换行:System.out.print();  (即去掉了ln  line的意思)

目前格式:

public class 类名称{

     public static void main(String args[]){

所编写的所有代码

}

}

以后在此之后会有更多class{} class{} class{} class{}……而已

4.问题:请解释PATH和CLASSPATH的区别?

·PATH:是属于操作系统属性

·CLASSPATH:是Java程序解释类文件时所使用的加载路径

当Java命令运行的时候,实际上JVM会自动找到CLASSPATH属性,而后找到此属性对应的内容,通过指定内容设置的路径来加载所需要的类。(CLASSPATH主要的目的是定义类的加载路径,不管定义了多少个路径,一定要定义一个“.”,表示由当前所在目录进行类的加载)

---------------------------------------------------------------------------------------------------------------------------------

Java注释

·//注释:单行注释;

·/*…*/:多行注释

·/**…*/:文档注释

(开发中多使用单行注释,多行注释在一些开发工具中格式化之后效果不好,对于文档注释,需要有开发工具的支持后才可以更好的编写)

标识符与关键字

·标识符由字母、数字、_、$所组成,其中不能以数字开头,不能是Java中的保留字(关键字)。

   ·注意:在编写的时候尽量不要使用数字,命名尽量有意义;

   ·对于“$”符号有特殊意义,不要去使用。

 

Java有两个未使用到的保留关键字:goto,const

·有三个特殊含义的标记:true、false、null;

·神奇点:JDK1.7之后,标识符可以用中文了,但暂时不推荐使用

总结:每个版本Java都有新特性,但特新保守使用

      Java标识符的命名还是以字母、数字、_、$为主

·数据类型

·任何程序严格来讲都属于一个数据处理游戏。所以对数据的保存就必须有严格的限制那么这些限制就体现在了我们数据类型的划分上,即:不同的数据类型可以保存不同的数据内容。

·两大类数据类型:基本数据类型,引用数据类型

基本数据类型不牵扯到内存分配问题,而引用数据类型需要开发者为其分配空间,而后进行关系的匹配。(八基三引)

个人选择数据类型原则:

·表示整数使用int,表示小数用double;

·表示日期时间数字或者文件(或内存)大小使用long;

·实现内容传递或者编码转换使用byte;

·实现逻辑控制,使用boolean;

·对于中文变量,使用char可以避免乱码问题。

解决数据溢出,只能通过扩大数据范围的方式来实现;

范围小的数据类型与范围大的数据类型运算时自动转为范围大的数据类型,范围大的数据类型转为范围小的数据类型就要用到强制转换格式为‘(数据类型)数据名‘。

如果将long变为了int时所保存的数据超过了int范围,那么依然会出现数据溢出。

提示:所有的变量在使用时一定不要相信默认值,都设置具体内容0。

定义变量时同时设置好初值是标准。

在Java中只要是小数就对应的double类型(double是保存数据类型最广的);

如果使用了float,表示需要将double型变为float型,需要采用强制转换。如下:

 

整型不保留小数位,两整型数相除后的值也为整型,因此会失精度;若将其中一个数强制转换为double则会成小数(精确值)。

字符型:char

  byte属于字节,按照传统概念,一个字节=2字符

Java使用的是十六进制的UNICODE编码,此类编码可以保存任意的文字,也就是ASCII码的转换。

·‘A’(65)~‘Z’(90)

·‘a‘(97)~’z‘(122)

·‘0‘(48)~’9‘(57)

由上可知A 比a小了32,所以可以用加减法实现大小写转换

在程序之中使用“’”声明的内容称为字符。每一对单引号里只能保存一位字符。

char型只能和int型互相转换;

int型数据变char型要用强制转换 (C = (char) num;C是数字num对应的字符)

char型变量转为int型不用强制转换(int num = C;num是字符C对应的数字)

布尔型

Java不允许用0 (零)或1(一)来填充布尔型的变量内容,只能用true 和false。

 

String型数据

只要是项目开发,百分百用到String。(属于引用类型,是一个类)。

【在Java里只要是类名称,每一个单词的首字母都是大写的。(例:Student Info)】

String表示的是一个字符串,即:多个字符的集合,String要求我们的(“”)双引号来声明其内容。

 

在String操作里面,也可以使用‘+‘进行字符串的连接操作。

 

 任何数据类型都向范围大的数据类型进行转换,但是有String时,遇到String的“+”操作,所有的数据先变为String类型数据,之后执行字符串的连接操作。

 

若要得出正确的计算结果,则要通过“()”来改变优先级而得出计算结果。

 即先执行括号内的加法计算,然后再将结果与字符串进行连接。

 

总结:

  1. 整数用int,小数用double,逻辑用boolean;
  2. Long、byte、char在处理数据的时候会用到;
  3. 数据类型转换永远都是小范围自动向大范围转换,如果将大范围变为小范围,要考虑到强制转换;
  4. int和char之间的互相转换是以编码为主的,大写字母和小写字母之间差了32个长度;
  5. String是一个特殊的类,用于描述字符串,字符串使用(“”)双引号声明,可利用“+”实现字符串连接。

-------------------------------------------------

运算符

常用几类运算符:四则运算(包括模运算%),逻辑运算,三目运算,位运算。

简化运算符:+=-=*=/=,%=.

自增与自减:

·++变量、--变量:在变量前表示先变化变量再进行后面运算

·变量++、变量--:在变量之后先运算再变化。

建议只操作其实现自增或自减的操作,可以有效避免计算的复杂度。

对于所有运算符,不要编写过于复杂的运算符。利用括号来改变优先级。

三目运算:是一种赋值运算的形式,以一个布尔表达式的结果进行赋值,格式如下:

数据类型  变量 = 布尔表达式 满足时值 不满足时值;

若不用三目运算,上式写为选择判断语句:

或者

逻辑运算:

·包括:与(&、&&)、或(|、||)、非(!)计算

·非(!):就是对布尔运算进行求反:(!true  就是 false)

·与:只要出现一个表达式结果为false,则整个运算结果为false

·或:只要出现一个表达式结果为true,则整个运算结果为true

·多个布尔表达式想要进行连接,只能够使用与和或两个操作。

·单与(&):会将所有表达式都判断一遍,即使之前已经有表达式为false;

·短路与(&&):只要前面有表达式判断为false,后边的表达式将不再会执行

·单或(|):会将所有表达式都判断一遍,即使之前已经有表达式为为true;

·短路或(||):只要前面有表达式判断为true,后边的表达式将不再会执行

(多灵活运用短路与、短路或)

位运算(主要用于二进制操作的)

·运算符:&、|、>>、<<、^、~。(Java的整型二进制是32位的。)

·与(&)、或(|)可用于位运算,短路与(&&)和短路或(||)不可用于位运算

·下面举例位运算:

 

·移位运算赋值给别的变量(int  result  = m << 2),自身(m)变量值不变,除非赋值给自己(m<<=2),(<<=)是合理运算符(如同+=、-=)

·十进制转二进制,除2取余,倒序(从后余数往前余数取,从下往上)

总结:1、运算符写简单操作

      2、三目运算一定掌握

      3、使用短路与和短路或

程序逻辑控制

分支结构,也就是判断结构,有两类语法:if 、switch。

整个if的判断都可以编写布尔表达式。但是switch的判断不能使用布尔表达式,最早只能使用整数或者字符判断,从JDK1.5开始支持枚举判断,在JDK1.7开始支持String的判断。

if结构

 

 

 

 Switch结构:

 

 

 

注意:switch不能判断布尔表达式,只能判断内容。

判断语句基本都是用if ……else

Switch语句判断String内容时判断大小写。

循环结构:

while循环和for循环

while

第一种: while 【先判断再执行】

while (判断语句){

     循环语句;

     修改循环结束条件;

}

第二种:  do……while  【先执行一次再判断,不管刚开始循环条件是否满足,但是以后的开发中不会用到do……while

do{

    循环语句;

    修改循环结束条件;

} while(循环判断语句);    //注意这里的分号

for循环  :

for (循环初始化条件;循环判断;循环条件变更){

        循环语句;

}

·所有的循环语句里面都必须有循环的初始条件。 每次循环的时候都要去修改这个条件,以判断是否结束循环。

·如果不知道循环次数,但是知道循环结束条件的时候使用while

·如果明确知道循环次数了,使用for循环

循环嵌套打印乘法表如下:

 

循环控制语句有两种:break(退出整个循环)和continue(退出本次循环)此类语句要配合判断语句使用。

----------------------------------------------

----------------------------------------------

方法:

方法的返回值类型:

   ·直接设置Java中的数据类型(基本数据类型、引用数据类型),如果方法设置了返回值,那么必须使用return语句返回与之数据类型对应的数据:

   ·方法没有返回值:void,可以不使用return返回内容,但是可以使用return结束方法

在定义方法名称的时候有格式要求,即第一个单词字母小写,之后每个单词首字母大写。

对于有返回值的方法,可以将它赋值给一个变量后输出,也可以直接将方法做为输出函数的值输出

使用void定义为返回值的方法不需要返回值,但可以使用return结束方法,只是不返回内容。

方法的重载:

进行方法重载时,各方法的名称相同,但方法的参数类型及个数不同。

方法重载后,调用方法时会根据传入的参数类型和参数个数调用相应的方法。

System.out.println();方法可以输出各种类型数据,其实他就是被重载后的方法。

注意

   ·在进行方法重载的时候一定要考虑到参数类型的统一,上面举例虽然可以实现重载方法返回不同类型的操作,但从标准开发来讲,建议所有重载后的方法使用同一种返回值类型;

   ·方法重载的时候重点是根据参数类型及个数来区分不同的方法,跟返回值的类型没有关系(即返回值类型不同,但参数类型和个数相同时,就会认为是同一个方法;出现冲突异常,如下图就是错误的,不是重载)

 方法的递归调用,自己调用自己,但一定要有一个结束的条件。

总结:

  1. 可以将一些重复执行的代码定义在方法里面,方法(Method)在有的地方称函数(function)。
  2. 目前讲解的方法有局限性: 定义在主类,只能由主方法直接调用
  3. 方法的返回值一旦定义了,就需要使用return返回相应的数据;
  4. 方法重载(overloading)指的是方法名称相同,参数的类型与个数不同,同时保证返回值类型相同;
  5. 递归调用需要明确设置一个结束条件,否则就会出现死循环,处理的数据大的话,则有可能出现数据溢出。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值