day 2:Java基本语法1(对基本概念的理解)

关键字:在每种语言中都存在关键字,java也不例外:

概述:关键字是被java赋予特定含义的单词,组成关键字的字母全部小写;goto和const作为保留字存在,目前并不使用。

常用关键字:

1:用于定义数据类型的关键字

class interface byte short int long float double char boolean void ;

2:用于定义数据类型值的关键字

true false null

3:用于定义流程控制的关键字

if else switch case default while do for break continue return 

4:用于定义访问权限修饰符的关键字

private protected public

5:用于定义类、函数、变量修饰符的关键字

abstract final static synchronized

6:用于定义类与类之间关系的关键字

extends inplements

7:用于定义建立实例以及引用实例,判断实例的关键字

new this super instanceof

8:用于异常处理的关键字

try catch finally throw throws

9:用于包的关键字

package import

10:其他修饰符关键字

native strictfp transient assert 


标识符:

概述:就是给类、接口、方法、变量等等起名字时候使用的字符序列

组成规则:英文大小写字母、数字字符、$和_;

注意事项:不能以数字开头、不能使Java中的关键字、区分大小写


常见命名规则:

1、包(其实就是文件夹,用于解决相同类名问题)划分命名空间 包名+类名

包的概念和理解:

java中包(pakage)的概念和c++中namespace的概念很类似,都可以限制类的作用域。两者最大的差别在于,java的包隐式地指明了类的树形层级结构(同时也是java源码文件的目录结构)例如java.demo.bamzhy13.。这样做的好处在于可以把名称相同的类放置在不同的包中,就不会产生冲突。

从编译器的角度来看,嵌套的包之间没有任何关系。

包的作用:

1、把功能相似或者相关的类或者接口组织在同一个包中,方便类的查找和使用。

2、如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字可以相同,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此包可以避免名字冲突。

3:包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。

创建包:

java中使用package关键字来指定代码所属的包(命名空间)。package pkg1[.pkg[.pkg3...]];

注意点:

1、包的名字隐含地指出了代码的目录结构。

2、同一目录下的public类名(同时也是java文件名)应该是独一无二的。

3、包的声明应该在源文件的第一行,每个源文件只能有一个包声明,这个文件中的每个类型都应用于它。

4、如果一个源文件中没有使用包声明,那么其中的类、函数、枚举、注释等将放在一个无名的包(unnamed package)中;

5:package的名字一般全是小写字母;

如何导入包:(先不往下挖了,学到后面再添加)

2、类或者接口:(驼峰法)

一个单词:首字母大写 Hello Demo1

多个单词:每个单词的首字母大写 HelloWorld JavaStudent ThreeNameWorlds

3、方法:

一个单词:首字母小写 main put add

多个单词:第一个单词首字母小写,之后每一个单词首字母大写 getValue getIntValue

4、变量:

一个单词:首字母小写 i j k word student

多个单词:第一个单词首字母小写,从第二个单词开始,每个单词首字母大写 isValid javaClassBasic

在实际开发中,需要做到见名知意。


注释:用于解释说明程序的文字(这里的解释说明的对象是开发者,而不是虚拟机或者编译器)除了解释说明还有排错的功能。

注释是一个程序员所必须要具有的良好编程习惯。初学者编写程序可以养成习惯:先写注释再写代码。

将自己的思想通过注释先整理出来,在用代码去实现。因为代码仅仅是思想的一种体现形式而已。

分类:

单行注释://表示他所在的那一行的内容,不是代码内容,编译器可以忽略

多行注释:/**/在多行注释符号之间的不是代码内容,编译器可以忽略。多行注释不可嵌套。

文档注释:仅从注释的角度讲,和多行注释没有区别,只是它的内容可以直接输出到文档当中。


第一个HelloWorld;

public class Demo1{

/*

*这里定义了一个方法,其名字叫做main(快捷键ctrl+shift+/)

*java虚拟机在执行的时候是从main方法开始执行的,即main方法是java执行的入口

**/

public static void main(String[] args){

//这是一个输出语句,其作用是将内容输出到console命令窗口中

System.out.printLn("hello world");

}

}


数值:

常量概述:在程序执行过程中其值不可以发生改变。

java中常量分类:字面值常量、自定义常量

字面值常量的分类:1、字符串常量2、整数常量3、小数常量4、字符常量5、空常e量6、布尔常量

java以0b前缀表示二进制数、0前缀表示8进制数、0x前缀表示十六进制。

有符号数:原码反码补码等等(补码的符号位可以直接参与运算)


变量:

变量概述:在程序执行的过程中,在某个范围内的值可以发生改变的量。int bamzhy=5;

数据类型:基本数据类型:((数值型:整数类型(byte/short/int/long)浮点类型(float/double))、字符型(float/double)、布尔型(boolean));引用数据类型(类class、接口interface、数组[])

byte 1字节 -128-127;

short 2字节 -2^15~2^15-1;

int 4字节 -2^31~2^31-1;

long 8字节 -2^63~2^63-1;

整数默认为int;小数默认为double;

float 4字节 -3.403*10^38~3.403*10^38 想用float得加f
double 8字节 -1.798*10^308~1.798*10^308

数据类型转化:(转化方向,小类型转大类型)

1、byte,short,char->int->long->float->double

2、byte,short,char,相互之间不转换,他们参与运算首先转换为int类型

强制转换:

byte bamzhy=(int)150;

强制转化,由低到高,截断处理。(转化成二进制有多少位由低到高截断)


数据类型:面试题

byte b1=3,b2=4,b;

b=b1+b2;

b=3+4;

其中哪句会编译失败?为什么?

b=b1+b2; 因为byte类型运算结果默认为int型 赋给byte会报错


关系运算符

对数值做加法运算(发生条件是,两个算子都可以算数值的类型)

字符串拼接运算(发生的条件是,参与运算的两个算子至少有一个字符串)

      System.out.println( 'a');
         System.out.println( 'a'+1);
         System.out.println("hello"+'a'+1);
         System.out.println('a' + 1 + "hello");
         System.out.println("5+5=" + 5 + 5);
         System.out.println(5 + 5 + "=5+5");

除法:整数相除只能得到整数,要想得到小数,可以用1.0乘以式子


赋值运算符

+=;-=;*=;/=,%=意思是先进行相应运算再赋值

关系运算符

==;&;&&;|;||;^;

&和&&有什么区别呢?单&时候,左边无论真假,右边都进行运算;&&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。

|和||同理;

^相同为真,不同为假


位运算符:

<< 左移1位,扩大2倍;;>>右移1位,缩小2倍;(带符号数);

>>>(无符号数);&;|;^;


面试题:请用最有效率的方式写出计算2*8的结果;

2右移3位;

清自己实现两个整数变量的交换;

1、中间变量;2、加法方式 a=a+b;b=a-b;a=a-b:3、^异或位运算符 a=a^b;b=a^b;a=a^b;4、a=(a+b)-(b=a);


三目运算符:

(关系表达式)?表达式1:表达式2;




基础知识汇总:


1:什么是注释?注释分为几种?注释有什么作用?


注释是用于解释说明程序的文字(这里解释说明的对象是开发者,而不是虚拟机或者编译器)除了解释说明还有排错的功能;
有//;/**/;/** */三种
注释方便自己或者他人方便的阅读、更好的理解程序;


2:什么是关键字?有什么特点?


关键字是被java赋予特定含义的单词,组成关键字的字母全部小写;goto和const作为保留字存在,目前并不使用;


3:什么是标识符?由哪些部分组成?常见的命名规则有哪些?


标识符就是给类、接口、方法、变量起名字时使用的字符序列;
组成规则:英文大小写字母、数字字符、$和_;
不能以数字开头、不能使用java中的关键字、区分大小写


常见的命名规则:
包:单级包:cn;多级包:cn.edu.peking
类、接口命名:首字母大写;一个单词:Student;多个单词:HelloWorld;
方法或变量:首字母小写,从第二个单词开始每个单词首字母大写;一个单词 name;多个单词:showAllName()
常量:全部大写 一个单词:PI;多个单词:STUDNET_MAX_AGE


4:什么是常量?常量的分类?字面值常量表现形式有哪些?
   
常量:在程序执行过程中其值不可以发生改变
字面值常量;自定义常量
字面值常量分为1、字符串常量 2、整数常量 3、小数常量 4、字符常量 5、空常量 6、布尔常量
包命名:(全部小写)


5:计算出十进制46对应的二进制,八进制,十六进制的值。


二进制:  101110 B
八进制:  56 O
十六进制:2E F


6.计算7的原码,反码和补码表示


0111 0111 0111


7:什么是变量?用自己的话描述一下自己对变量的理解。


在程序执行的过程中在某个范围内的值可以发生改变的量;(可以自定义其值,而且随时可以改变)


8.变量的定义格式?要使用变量需要注意什么?


(基本数据类型)名称=要定义的值;


9.Java中的数据类型分几类?基本数据类型有哪些?


分为基本数据类型和引用数据类型:
基本数据类型:分数值型(整数、浮点数)、字符型、布尔型
引用数据类型:类、接口、数组
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值