Java基础语法

来源:互联网 发布:手机淘宝怎么推广 编辑:程序博客网 时间:2024/06/10 04:55

JAVA原理


一、 java的运行机制:

  1. JAVA语言需要经过编译生成与平台无关的字节码也就是(.class)文件,在通过JAVA解释器(jvm)来解释执行。

二、 JVM:

  1. jvm是可运行JAVA字节码文件的虚拟计算机,它具有指令集并使用不同的存储区域,它负责处理指令,管理数据、内存、寄存器。

  2. java编译生成的字节码文件是面向JVM的,而JVM正是跨平台的关键,不同平台都有相应的JVM

三、开发环境搭建

  1. JDK:java开发标准包,包含(JRE:java运行时环境,包含(JVM))

  2. 设置环境变量:
    2.1 在系统环境变量后追加JDK的bin目录路径
    2.2 还可以通过新建一个用户环境变量(JAVA_HOME)来设置

  3. java的基本规则:
    3.1 java必须以.class的形式存在
    3.2 java源代码名称必须以该源代码中被public修饰的类的名称命名,因此java源文件中最多只能定义一个public类

JAVA语法基础


一、 注释

  1. 单行注释:(//)注释一行。
  2. 多行注释:(/* */)注释多行。
  3. 文本注释:(/* /)该注释可以通过javadoc工具提取出一份系统的API文档。
    ps: javadoc 默认只处理public,protected修饰的类、接口、方法、成员变量、构造器、内部类的文档注释;如若想要生成private的文档注释要在使用javadoc工具是添加-private选项

二、关键字

java关键是都是小写的,TRUE、FALSE、NULL不是java关键字,但属于java的直接量,也不可以作为标识符Java保留字:goto,const

三、运算符

运算符

1.位运算符:

&:两边都为1则为1;|两边都为0则为0;^两边相同返回1;~按位非,规律:变号减1,例~7=-8
<<:计算规律:例:3<<2=3*2^2=12 ;
/>>计算规律:例7>>2 = 7/2^2=1(注意是整除);
如果为负数有余数则加1,例:-7>>2: int i = 7/2^2; 7%2^2>0?i+1:i;
/>>>高位补0
负数二进制:正数的反码加1;

2.自增、自减

  1. a++;
    先对a进行临时存储 temp=a,运算a=a+1,后给b赋值:b=temp;
  2. ++a;
    先算a=a+1,后给b值b=a;

四、 数据类型

  1. java语言是强类型语言(变量必须先声明后使用,指定类型的变量只能接收与之类型匹配的值)
  2. java数据类型分为:基本数据类型、引用数据类型

引用数据类型:

数组,类,接口

基本数据类型:

  • 整型{byte(1字节),short(2字节),int(4字节),long(8字- 节)}(默认为int若想要为long须在后面加‘L’)
  • 浮点型{float(4字节)double(8字节)}(默认为double若想要float须在后面加‘f’)
  • 字符型{char(2字节)}
  • 布尔型{blooean }(1bit,通常大部分计算机分配内存时允许分配的最小内存单元是字节,因此bit大部分时候的实际占位是1字节。)

基本数据类型

基本数据类型的转换:

  • 自动类型转换:将一个表数范围小的值或变量直接赋值给一个表数范围大的值
  • 强制类型转换:与之相反即强制类型转换,强制类型转换要注意数据溢出

基本数据类型的转换顺序:
(char) or (byte->short)->int->long->float->double

注意
*在看数据类型操作是应该赋值好两边分开看。
1, byte与char,short与char之间不存在隐式转换。
2, 当byte、char、short混合运算时jvm会将它们各自转成int类型再进行运算。
例:

char  c=1;char c1=1;char c2=c+c1;//编译错误,因为在运行c+c1时,c和c1被转成了int型,故要强制转化,char c2 = (char)(c+c1);

3, 在对赋值变量赋值时,如果超过该变量类型的赋值范围会编译失败,强制转换后会溢出。
例:

byte b=128;//编译失败,byte b=(byte)128 此时溢出,b=-128;

ps:byte型溢出后又会回到起点,例如128=-128,129=-127

4, 赋值符-=,+=,例如byte b=0; b+=128;可以编译成功,因为赋值运算运算后会自动转换类型
5, 建议在赋值long和float时要带标识符,因为系统默认情况下整数是int和小数是double,int在超过值的情况下会报错。
例:

long s=100;编译正常long s=10000000000000000000000000000;//错误

直接量:可以直接赋值的量

能指定直接量的通常有三种类型:基本类型,字符串类型,NULL类型

注意:
NULL类型:(NULL是一个特殊的类型,它可以赋值给任何引用型的变量,以表示这个引用型变量保存的地址为空,即还未指向任何有效对象)

字符串类型:java会保证每个字符串常量只有一个
例:s0=”hello”;s2=”hello”,s0==s2会返回TRUE;所以它们所用的引用来自同一个常量

五、流程控制


  1. 顺序结构:程序从上往下执行,中间没有任何判断和跳转
  2. 分支结构:
    • if/else
    • switch/case/default

注意:
1.switch匹配值只能是byte、short、char、int、枚举、String类型;
2.case注意都要带break,不然匹配一个case后接下来的代码全部都会执行,直至遇到break为止。同时注意default是和case同级的,将default放在前面也会产生与case同样的效果,参看下面的例子;
3.default看似没有条件实则要所有case都无法匹配时才会执行

public class Test{    public static void main(String[] args) {        int k = 4 ;        switch(k) {        default:            System.out.println("default");        case 0:            System.out.println("0:"+k++);        case 1:            System.out.println("1:"+(++k));        case 2:            System.out.println("2:"+k++);            break;        case 3:            System.out.println(3);        }    }}/* 运行结果:default0:41:62:6*/

运行结果:

3.循环结构:
- while循环
- do/while
- for:注意点:for循环的第一个值只做一次赋值后就不参加了

注意:
continue:结束本次循环(即忽略本次循环剩下的语句)
break:跳出循环(开始执行循环后面的代码)
return:结束整个方法

2 0