关键字:在每种语言中都存在关键字,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;
数据类型转化:(转化方向,小类型转大类型)
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;
基础知识汇总:
注释是用于解释说明程序的文字(这里解释说明的对象是开发者,而不是虚拟机或者编译器)除了解释说明还有排错的功能;
有//;/**/;/** */三种
注释方便自己或者他人方便的阅读、更好的理解程序;
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中的数据类型分几类?基本数据类型有哪些?
分为基本数据类型和引用数据类型:
基本数据类型:分数值型(整数、浮点数)、字符型、布尔型
引用数据类型:类、接口、数组