Java编程基础笔记

    对于初学Java的人而言,大堆的概念性东西让人头疼不已,下面总结的Java基础部分的笔记中的一部分,希望对你有所帮助。

案列:计算球的体积

 public static void main(String[] args) {
  Scanner sc = new Scanner(System.in);
      System.out.println("请输入球的半径:");//换行打印
      int r = sc.nextInt();
      double v = 4f/3*Math.PI*r*r*r;
     System.out.printf("%6.2f",v);//格式化打印

}

常量:在程序运行期间不变的数据,常量分为直接常量和符号常量。

 

 直接常量:3,4f(默认为float类型的数据)

           “Hello,Word”字符串常量

           Java代码中:1.2e-6(平常书写:1.2*106)为什么不用这种,因为不是纯文本文件,它带有一定的格式。

 

符号常量:符号化的常量,也就是给常量取个名字。

为什么使用符号常量?

①.                                     便于维护。更改代码时比较方便,一改全改。

②.                                     含义清楚。见文知意,增强程序的可读性。

 

进制:一种计数方法,即所谓的“逢X进1,借1当X”。

 

基:某种进制所用的符号的个数,eg:进制使用0-9十个符号,进制0,1

两个符号。十六进制使用0-9和A-F十六个符号。

 

权:一个符号所表示的值的大小除了和符号本身有关,还与其所处位置有关。

   把某个位置的1所表示的值的大小即为改为的权。

           

10进制:相当于10种符号,也就是说10种状态。

 

二进制同理

0123(八进制)1*8^2+2*8^1+3乘以8^0

0x123(十六进制) 同理,把8改为16

 

进制转换:

       ①.X进制→十进制      按权展开,eg:123 = 1*102 + 2*101 + 3*100

       ②.十进制→X进制     除基取余倒序排列

 

数据类型

    为什么需要有数据类型?

       生活中的数据本来就是有类型的,只不过我们没有在意或者去深入研究。那么计算机语言就是去告诉计算机如何去解决现实问题,当然需要对等的概念去描述数据。

常用的数据类型有:

byte,short(2字节),int(4字节),long,float,double,char,String,boolean

数据类型有什么作用?

①.决定了每个数据存储时所需要的字节数。

②.决定了数据所能执行的运算。

 

变量:

变量的本质是什么,或者说变量到底是什么?

容器。从这个角度理解,可以直接把变量理解成某个内存地址.

从变量里面拿东西,可以理解成是从某个内存地址里面读数据.

往变量里面放东西,可以理解成是往某个内存地址里面写数据.

(eg:保存和未保存)

int x;的含义是:告诉编译器,需要申请4个字节的内存空间,以后

      这个单元(4字节)就叫做X。

int x = 4;的含义是:变量X申请4个字节的内存空间,将常量4存放到内存空间中。

{}代码块,在一个类中可以有N个代码块。

内存单元有两个属性:值和地址。地址:也就是指针或者引用。


Java文件类型:

1.   .java(源文件)

2.   .class(字节码文件)

 

一、HelloWorld:

1.   创建以.java结尾的源文件。

2.   类:class(代码的容器)

3.   main:主函数,程序执行入口。一个类中只能有一个主函数。

4.   一行只写一句逻辑代码,以 ; 结束。


 

二、编译、运行:

1.   编译:javac 源文件名称.java 例:javac A.java

2.   运行:java 类名                         例:java HelloWorld

 

三、类的阐述:

1.   在一个源文件中,可以定义多个类,编译后,每个类都会产生独立的字节码文           件。

2.   在一个类中,只能有一个主函数,每个类都可以有自己的主函数。

3.   公开类(public class)的类名必须和文件名完全相同。

4.   在一个源文件中,只能有一个公开类。

四、package(包):

1.   作用:管理字节码文件、区分字节码文件。

2.   语法:package 包名;(必须在源文件的第一行)

3.   带包编译:javac -d . 源文件名称.java (自动生成目录结构)

4.   带包运行:java 包名.类名  (全限定名)

5.   声明规则:域名倒置com.baidu.vip.dept.group1.testproject.tool.TestPackage

 

五、编码规范:

1.   良好的注释习惯:

I.   注释不参与编译。

II.  单行注释: // 单行注释内容

III. 多行注释: /* 多行注释内容 */

IV. 文档注释: /** 文档注释 */         javadoc -d . TestPackage.java

 

2.   良好的标示符命名规范:

I.   硬性:

a.   字母、数字、_ 、$ 组成,数字不能开头。

b.   不能与关键字或保留字重名。

 

II.  软性:

a.   望文生义。

b.   类名可以由一个或多个单词组成,每个单词的首字母大写(pasacl)。

c.   变量、函数由一个或多个单词组成,首单词首字母小写,拼接词首字母           大写(camel)。   userName

d.   包名全小写,只可以使用特殊字符 . ,并且不以 . 开头或结尾。

e.   常量全大写,多个单词用 _ 拼接。  USER_NAME

六、变量【重点】: bit byte kb mb gb tb pb eb zb yb bb db cb xb

1.   概念:一个存储空间的表示,它是存储数据的基本单元。

2.   语法:

I.   声明:数据类型 变量名;   //int money;

赋值:变量名 = 值;           // money = 10;

II.  声明并赋值:数据类型 变量名 = 值; // intnumber = 20;

III. 多个变量同时声明和赋值:

数据类型 变量名,变量名=值,变量名; //int a , b , c = 30;

 

七、数据类型:

1.   基本数据类型(原始、简单):8种

I.   整数:4

a.   byte     1个字节         -2^7~ 2^7-1      -128~127

b.   short    2个字节 -2^15~2^15-1           -32768~32767

c.   int        4个字节   -2^31~2^31-1       -2147483648~2147483647

d.   long    8个字节   -2^63~2^63-1       -922京~922京-1    赋值时,加L

 

II.  小数:2   浮点型(近似值) 1bit符号位 8bits指数位 23bits尾数位

a.   float    4个字节   1.4E-45~3.4E38   F

b.   double8个字节              ~1E308

 

III. 字符:1

a.   char     2个字节         ''         ascii/ unicode    A / 65 / 0x0041 / 0100 0001

b.   转义字符:\t       \n         \'          \"         \\

 

IV. 布尔:1

a.   boolean     1个字节     取值范围:true / false

 

2.   引用数据类型(对象、句柄):无数

a.   String字符串            " "      

 

八、类型转换:

1.   自动类型转换:

I.   两种类型相互兼容。

II.  目标类型大于源类型。

 

2.   强制类型转换:

I.   两种类型相互兼容。

II.  目标类型小于源类型。

 

九、表达式:

1.   使用运算符链接的变量或字面值,并可以得到一个最终的结果。

2.   自动类型提升:

I.   两个操作数,如果有一个为double,运算结果提升为double。

II.  如果没有double,有一个为float,运算结果提升为float。

III. 如果没有float,有一个为long,运算结果提升为long。

IV. 如果没有long,有一个为int,运算结果提升为int。

V.  如果最终连int都没有,运算结果仍旧提升为int。

VI. 任何数据类型的值与String相加时,都作为连接操作,提升为String。

 

十、运算符:

1.   算术运算符:+ - * / % ++ --

2.   赋值运算符:= += -= *= /= %=

3.   关系运算符:> < >= <= == !=   //其结果为boolean类型

4.   逻辑运算符:

I.   &&与(并且):两个条件同时为true,结果为true。

II.  ||    或(或者):两个条件有一个为true,结果为true。

III. !    非(不是):取反。//判断String时应用。

5.   三元运算符:布尔表达式 ? 结果1 : 结果2; //用于判断后的赋值(前后匹配)

 

十一、控制台输入:

1.   导入包:import 包名.类名; //将外部的class文件引用到自身类中。

2.   java.util.Scanner类(扫描仪)

3.   默认引入:java.lang.*;

4.   使用顺序:

I.   导入java.util.Scanner

II.  声明Scanner类型的变量

III. 使用Scanner类中对应的函数(区分类型):

a.   .nextInt();     //接受整数

b.   .nextDouble();//接受小数

c.   .next();                  //接受字符串

d.   .next().charAt(0);//接受字符

 

十二、选择结构:

1.   基本if选择结构:

if(布尔表达式){

//代码块:当表达式结果为true时,所执行的操作

}

 

2.   if else选择结构:

if(布尔表达式){

//代码块 true

}else{

//代码块 false

}

 

3.   多重if选择结构:

if(布尔表达式){

//代码块 true

}else if(布尔表达式){

//代码块true   前一个没有满足时,再继续判断下一个

}else{

//都没满足时,执行else

}

注:相互排斥,当有一个条件满足时,其他均不在执行。适用于区间判断,保           证升序或降序。

 

4.   嵌套if选择结构:

if(布尔表达式){ //外层

if(布尔表达式){ //内层:当外层满足时,才判断内层

//内层代码块

}

}

注:在外层选择结构中,嵌套另一个选择结构,可任意组合。当外层条件满足   时,再判断内层条件。

 

十三、分支结构:

1.   switch分支结构:

switch(byte/short/int/char/[String]){ //JDK1.7之后可以判断String

case 1:

//操作

break;

default:

//操作

break;

}

2.   break关键字:终止、跳出当前switch选择结构。

 

十四、局部变量:

1.   概念:声明在函数内部的变量,需要先赋值再使用。

2.   作用范围:定义行开始到所在的代码块结束。

3.   局部变量之间,不能重名。避免命名冲突。

猜你喜欢

转载自blog.csdn.net/weixin_42047611/article/details/80205438