JavaSE复习(一)java概述和基本语法上

Java语言概述

Java两大核心机制
  1. java虚拟机(Java Virtual Machine)
  2. 垃圾回收机制(Garbage Collection)

JVM是一个虚拟的计算机,具有指令集并使用不同的存储区域。负责执行指令,管理数据、内存、寄存器。
JVM 用于运行 Java 应用程序对于不同的平台,有不同的虚拟机。Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行”。

垃圾回收:将不再使用的内存空间进行回收。
在 C/C++ 等语言中,由程序员负责回收无用内存。
Java 不需要程序员负责回收无用的内存:它提供一种系统级线程跟踪存储空间的分配情况。并在JVM空闲时,检查并释放那些可被释放的存储空间。
垃圾回收在 Java 程序运行过程中自动进行,程序员无法精确控制和干预。


Java语言的特点
1.  面向对象——基本概念:类、对象;三大特性:封装、继承、多态
2.  健壮性
3.  跨平台向——Java虚拟机

JDK和JRE
IDE(Integrated Development Environment,集成开发环境)

一个 Java 源文件中最多只能有一个 public 类。
Java 语言严格区分大小写。


Java中的注释类型:

单行注释//注释文字
多行注释 /* 注释文字 */
文档注释(java 特有)

单行和多行注释,被注释的文字,不会被JVM(java虚拟机)解释执行。
多行注释里面不允许有多行注释嵌套


Java 的API文档

API (Application Programming Interface,应用程序编程接口)是 Java 提供的基本编程接口。


Java基本语法

关键字

关键字中所有字母都为小写


标识符

凡是可以自己命名的都叫标识符

规则
由26个英文字母大小写,数字:0-9 ,_或 $ 组成
数字不可以开头。
不可以使用关键字和保留字,但能包含关键字和保留字。
Java中严格区分大小写,长度无限制。
标识符不能包含空格。

名称命名规范

包名:多单词组成时所有字母都小写xxxyyyzzz
类名接口名:多单词组成时,所有单词的首字母大写XxxYyyZzz
变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写xxxYyyZzz
常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ


变量

变量的概念:
内存中的一个存储区域
该区域有自己的名称(变量名)和类型(数据类型)
Java中每个变量必须先声明,后使用
该区域的数据可以在同一类型范围内不断变化

定义变量的格式:数据类型 变量名 = 初始化值

Java是强类型语言,每个变量必须先声明类型,后使用.


变量的分类

按被声明的位置划分:
1. 成员变量:方法外部、类的内部定义的变量
2. 局部变量:方法或语句块内部定义的变量

按所属的数据类型划分:
1. 基本数据类型变量
数值型(整数类型(字节型byte、short、int、long)、浮点类型(float(4字节f)、double)、字符型(char)、布尔型(boolean)
2. 引用数据类型变量
类、接口、数组

使用变量注意

变量的作用域:一对{ }之间有效
声明类中成员变量会自动赋值为0或者null,局部变量不会自动初始化


字符类型:char

字符型常量的三种表现形式:
1. 字符常量——用单引号(‘ ’)括起来的单个字符,涵盖世界上所有书面语的字符,例如:char c1 = ‘a’; char c2 = ‘中’; char c3 = ‘9’;
2. 转义字符——用‘\’来将其后的字符转变为特殊字符型常量。例如:char c3 = ‘\n’; – ‘\n’表示换行符
3. 直接使用 Unicode 值来表示字符型常量:‘\uXXXX’。其中,XXXX代表一个十六进制整数。如:\u000a 表示 \n。

char 类型是可以进行运算的。因为它都对应有 Unicode 值。


布尔类型:boolean

适于逻辑运算,一般用于程序流程控制:条件控制语句;循环控制语句;
只允许取值true和false,不可以0或非 0 的整数替代


基本数据类型转换
自动类型转换:

容量小的类型自动转换为容量大的数据类型。
【多种类型的数据混合运算】时,系统首先自动将【所有数据转换成容量最大的那种数据类型】,然后再进行计算。
byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型。
任何基本类型的值和字符串值进行连接运算时(+),基本类型的值将自动转化为字符串类型。


强制类型转换

将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符(()),但可能造成精度降低或溢出
字符串不能直接转换为基本类型,通过包装类的方法实现

        String a="43";
        int a=Integer.parseInt(a);

boolean类型不可以转换为其它的数据类型。


进制

原码:直接将一个数值换成二进制数。
反码:是对原码按位取反,只是最高位(符号位)保持不变。

计算机以【补码】的形式保存所有的整数。
正数的补码与其原码相同;负数的补码是在其反码的末位加1


运算符

算术运算符
赋值运算符
比较运算符(关系运算符)
逻辑运算符
位运算符
三元运算符

算术运算符的注意问题
如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。 但被模数是负数就另当别论。
对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。5/2=2 5/2.0=2.5
+除字符串相加功能外,还能把非字符串转换成 字符串

    System.out.println("5+5="+5+5);//结果是5+5=55
    System.out.println("5+5="+(5+5));//结果是5+5=10

比较运算符的注意问题
注1:比较运算符的结果都是boolean型,也就是要么是true,要么是false。
注2:比较运算符“==”不能误写成“=” 。


逻辑运算符
逻辑运算符用于连接布尔型表达式,在Java中不可以写成

        3<x<6,应该写成x>3 && x<6 。

“& |”和“&& ||”的区别:
单&时,左边无论真假,右边都进行运算;
双&时,如果左边已经可以判断结果,右边不会计算


位运算符

    <<    左移      ——被移除的高位丢弃,空缺位补0。
    >>    右移      ——被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,空缺位补1。
    >>>   无符号右移 ——被移位二进制最高位无论是0或者是1,空缺位都用0补。

    &(与)|(或)^(异或)

三元运算符
格式:
(条件表达式)?表达式1:表达式2;
如果条件为true,运算后的结果是表达式1;
如果条件为false,运算后的结果是表达式2;


判断语句和循环语句
    if(布尔表达式){
            语句或语句块;
     }
    if(布尔表达式) {
            语句或语句块;
     } 
     else if(布尔表达式){
            语句或语句块;
     }else {
            语句或语句块;
     }

    switch(表达式){
        case 常量1:
            语句1;
            break;
        … …
        case 常量N:
            语句N;
            break;
        [default:
            语句;
            break;]
     } 

switch(表达式)中表达式的返回值必须是下述几种类型之一:int, byte, char, short, 枚举, 字符串;
case子句中的值必须是【常量】,且所有case子句中的值应是【不同】的;
default子句是任选的;
break语句跳出switch语句块;


循环语句功能——在循环条件满足的情况下,反复执行特定代码
for循环

     for (初始化表达式; 布尔值测试表达式; 更改表达式){
            语句或语句块;
     }

while 循环语句

    [初始化语句]
    while( 布尔值测试表达式){
                语句或语句块;
        [更改语句;]
    }

do/while 循环语句

    [初始化语句]
    do{
            语句或语句块;
            [更改语句;]
    }while(布尔值测试表达式); 

特殊

【break】:用于终止【switch语句】和【循环】语句块的执行,跳出当前【循环】
在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句块

        label1: {   ……        
        label2:       {   ……
        label3:         {   ……
                               break label2;
                               ……
                        }
                     }
                 } 

【continue】
跳过某个【循环】语句块的【一次执行 】
出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一层循环

注意
break只能用于switch语句和循环语句中。
continue 只能用于循环语句中。
break和continue之后不能有其他的语句,因为程序永远不会执行break 和 continue之后的语句。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值