《Java从入门到精通》第三章学习笔记

第3章 Java语言基础

一、标识符和关键字

1、Java中的标识符用于标识类名、变量名、方法名、数组名、文件名。

2、标识符的命名规则:由字母、数字、下划线和美元符号组成,但第一个字符不能是数字。同时标识符不能选用Java的关键字和保留字。

3、一般的约定命名规则: (1)类和接口名:每个词首字母大写,如MyClass,HelloWorld; (2)方法名:第一个词的首字母小写,其余词首字母大写,尽量少用下划线,如myMethod,myGetData; (3)常量名:基本数据类型的常量名全部用大写字母,各词之间用下划线分隔,如SIZE_NAME; (4)变量名:首词首字母小写,其余词首字母大写,不用下划线,尽量少用美元符号。

二、基本数据类型

1、整数类型:有byte\short\int\long四种,存储空间分别为1、2、4、8个字节,其中给long类型变量赋值时必须在结尾加L或l,如:long BigNumber=1234567L。

2、浮点类型:有float单精度和double双精度两种,分别占4、8个字节。其中float类型变量赋值时结尾必须加F或f。

3、字符类型:使用char进行声明,占用两个字节。

4、布尔类型:使用boolean进行声明,只能由true和false两个值。

三、变量和常量

1、变量的有效范围(作用域) (1)在类体中定义的变量被称为成员变量,成员变量在整个类中都有效。类的成员变量分为静态变量和实例变量,静态变量通过修饰符static确定,并且可以通过“类名.静态变量名称”的方式在其他类中使用。

 1 class var{
 2    int x=3;         //这里定义了var类的一个实例变量x
 3    static int y=30; //这里定义了var类的一个静态变量y
 4 }
 5 class bar{
 6    int a=var.y;
 7 /*
 8 定义bar类的实例变量a,
 9 并把var类中静态变量y的值赋值给a
10 */
11 }

(2)在类的方法体中定义的变量为局部变量,只在当前代码块中有效,其生命周期只在该方法被调用时,虚拟机为其分配内存空间,方法调用结束后,则该内存也被释放。
(3)在类中某一方法体内,可直接使用类体创建的静态变量,当该静态变量与该方法体中创建的局部变量重名时,静态变量将被隐藏,如果须调用该类体静态变量时,需使用“类名.静态变量名称”的方式。
注:经测试,类体中的实例变量无法在方法中使用。

 1 public class Number {
 2     static int mydata=414;
 3     static int yourdata=1973;
 4         public static void main(String[] args) {
 5         int mydata=1314;
 6         System.out.println("类体静态变量mydata的值是"+Number.mydata);
 7         System.out.println("类体静态变量yourdata的值是"+yourdata);
 8         System.out.println("方法内部的局部变量mydata的值是"+mydata);
 9     }
10 }
11 /*
12 输出----------
13 类体静态变量mydata的值是414
14 类体静态变量yourdata的值是1973
15 方法内部的局部变量mydata的值是1314
16 ----------------
17 */

四、运算符
异或的应用范例:不使用辅助变量实现两变量的值互换

 1 import java.util.Scanner;
 2 public class Nexchange {
 3     public static void main(String[] args){
 4         Scanner scan=new Scanner(System.in);
 5         System.out.println("请输入变量A的值");
 6         long A=scan.nextLong();
 7         System.out.println("请输入变量B的值");
 8         long B=scan.nextLong();
 9         System.out.println("A="+A+"\tB="+B);
10         System.out.println("执行变量互换...");
11         A=A^B;
12         B=B^A;
13         A=A^B;
14         System.out.println("A="+A+"\tB="+B);
15     }
16 }
17 /*
18 这里运用了位操作异或,对于整数X有:X^X=0;X^0=X;同时异或操作满足结合律和交换律
19 将A=A^B带入后面两式,分别如下:
20 B=B^A=B^A^B=A^(B^B)=A^0=A;
21 A=A^B=(A^B)^A=...=B;
22 ----------
23 引申:除异或方法外,不通过辅助变量的方法还有:
24 (1)a=a+b;b=a-b;a=a-b;
25 (2)a=a*b;b=a/b;a=a/b;
26 */

五、实例
1、判断某一年是否为闰年

 1 import java.util.Scanner;
 2 public class LeapYear{
 3     public static void main(String[] args){
 4         Scanner scan=new Scanner(System.in);
 5         System.out.println("请输入年份(0~99999):");
 6         long year=scan.nextLong();
 7         while (year<0||year>99999){
 8             System.out.println("请重新输入年份(0~99999):");
 9             year=scan.nextLong();
10         }
11         scan.close();
12         if((year/400==0)||((year/4==0)&&(year/100!=0))){
13             System.out.println("输入年份为"+year+"是闰年");
14         }
15         else {
16             System.out.println("输入年份为"+year+"不是闰年");
17         }
18     }
19 }

2、不使用乘号运算符,用移位运算符计算21*16。

 1 public class MoveBit {
 2     public static void main(String[] args){
 3         long a=21L;
 4         int x=1;
 5         for(int i=1;i<5;i++){
 6             x*=2;
 7             a=a<<1;
 8             System.out.println("21左移动"+i+"位就是乘以"+x+"结果为"+a);
 9         }
10     }
11 }
时间: 2024-10-10 07:32:23

《Java从入门到精通》第三章学习笔记的相关文章

《Linux命令行与shell脚本编程大全》 第三章 学习笔记

第三章:基本的bash shell命令 bash程序使用命令行参数来修改所启动shell的类型 参数 描述 -c string 从string中读取命令并处理他们 -r 启动限制性shell,限制用户在默认目录下活动 -i 启动交互性shell,允许用户输入 -s 从标准输入读取命令 环境变量PS1.PS2 PS1:控制默认命令行提示符格式 PS2:控制后续命令行提示符格式   bash shell提示符字符串中使用的特殊字符 字符 描述 \a 报警字符 \d “日 月 年”格式显示的日期 \e

linux第三章学习笔记

第三章 进程管理 进程是Unix操作系统抽象概念中最基本的一种. 进程管理是所有操作系统的心脏所在. 一.进程 1. 进程是处于执行期的程序.除了可执行程序代码,还包括打开的文件.挂起的信号.内核内部数据.一个或者多个执行线程等多种资源 线程是在进程活动中的对象:内核调度的对象是线程而不是进程 在Linux系统中,并不区分线程和进程 可能存在两个或者多个进程执行的是同一个程序:甚至N个进程共享打开的文件.地址空间之类的资源 2. 线程:是进程中活动的对象.每个线程都有一个独立的程序计数器,进程栈

《Linux内核设计与实现》第三章学习笔记

第三章  进程管理 姓名:王玮怡  学号:20135116 一.进程 1.进程的含义 进程是处于执行期的程序以及相关资源的总称,程序本身并不是进程,实际上就是正在执行的代码的实时结果.Linux内核通常把进程也叫“任务”. 2.线程的含义 执行线程简称线程,是在进程中互动的对象.内核调度的对象是线程而不是进程.Linux系统不区分线程和进程,线程只是一种特殊的进程. 3.进程的执行过程 (1)clone()调用fork(),通过复制一个现有进程来创建一个全新的进程,进程开始存活.其中调用fork

《程序员的自我修养》第三章学习笔记

1,  编译器编译源代码生成的文件叫做目标文件. 从结构上说,是编译后的可执行文件,只不过还没有经过链接 3.1 目标文件的格式 1,可执行文件的格式: Windows下的PE  和   Linux下的ELF 2,从广义上说,目标文件与可执行文件的格式几乎是一样的,所以广义上可以将目标文件与可执行文件看成是一种类型的文件. 3,可执行文件,动态链接库,静态链接库都按照可执行文件格式存储(Windows下是 PE-COFF格式,Linux下是ELF格式). 4,Linux下命令: $: file 

第三章学习笔记

一.进程 1.进程就是出于执行期的程序 2.执行线程,简称线程,是在进程中活动的对象 3.进程提供两种虚拟机制:虚拟处理器和虚拟内存 二.进程描述符和任务结构 1.内核把进程的列表存放在焦作任务队列的双向循环链表中,其中每一项都是类型为task_struct.称为进程描述符的结构 2.进程描述符的分配和存放: (1)目的:Linux通过slab分配task_struct结构,以达到对象复用以及和缓存着色的目的(避免资源动态分配和释放带来的资源消耗) (2)分配:每个任务的堆栈尾端(比如,对于向上

《从问题到程序》第三章学习笔记

知识总结 pan_area(3.24)是函数调用表达式,表示用实参3.24去调用函数pan_area.double pan_area(double r)表示本函数的名字是pan_area,其返回值类型是double.这个函数只有一个参数,所以参数表里只有一对类型描述和参数名,说明参数的类型是double,名字是r. int main() { ...... return 0; } 以main为名字的函数的地位特殊,它表示这个程序的执行起点和整个过程.在一个C程序启动时,其执行就从它的main函数的

Scala第三章学习笔记

换行后的左大括号造成的问题: class FooHolder { def foo() { println("foo was called") } } Scala认为def foo()这行代码定义了一个抽象方法.这是因为它没有捕捉到后面的大括号,认定def foo()是完整的一行语句.当编译时,它认为这是一个洗呢匿名代码块,应该在类构建过程中执行. 解决办法:加一条新的编码规定,要求所有的方法定义使用"="语法. trait FooHolder2{ def foo()

《Linux内核设计与实现》第一、二章学习笔记

<Linux内核设计与实现>第一.二章学习笔记 姓名:王玮怡  学号:20135116 第一章 Linux内核简介 一.关于Unix ——一个支持抢占式多任务.多线程.虚拟内存.换页.动态链接和TCP/IP网络的现代化操作系统 1.主要发展过程   1969年,贝尔实验室的程序员们设计了一个文件系统原型,最终发展演化成了Unix 1971年,Unix被移植到PDP-11型机中 1973年,整个Unix系统使用C语言进行重写,为后来Unix系统的广泛移植铺平了道路 Unix第六版(V6)被贝尔实

Android深度探索——第三章读书笔记及心得

了解Git ——第三章读书笔记及心得 对于Android的理解是从这学期才开始,所以不可谓说是了解的太少太少.对于Linux虽然经过了一学期的学习.经过一次紧张的实训,但是了解的也不是很多.不过我终究是知道Android和Linux是开源的,这是很多老师都曾经告诉我们的.虽然Git并不是学习Android和Linux开发必须掌握的技术,但是对于想要认真学习好这门技术的我们来说应该要努力掌握好这门技术.就像书上说的学习新技术的方式不是一味的读书,只会纸上谈兵.更应该深入的理解自己感兴趣的源代码,通