黑马程序员——Java基础02

——- android培训java培训、期待与您交流! ———-

1.1:关键字
定义:被Java赋予了特殊含义的单词。
特点:体现上都是英文小写。

1、 用于定义数据类型的关键字
基本数据类型:
整数类型:byte short int long 浮点类型:float double
字符类型:char 布尔型:boolean
引用数据类型:
class(类) interface(接口)
void用于函数上表示无返回值类型

2、用于定义数据类型值的关键字
true(真) false(假) null(空)

3、 用于定义流程控制的关键字
判断:if else switch case default
循环:for while do
继续循环:continue 结束循环或选择结构:break
返回:return
4、 用于定义访问权限修饰符的关键字
private(私有的) protected(受保护的) public(公有的)

5、 用于定义类、函数,变量修饰符的关键字
abstract(抽象的) final(最终的) static(静态的) synchronized(同步的) enum(枚举)

6、用于定义类与类之间关系的关键字
extends(继承) implements(实现)

7、 用于定义建立实例及引用实例,判断实例的关键字
new(建立实例) this(当前引用) super(父类引用) instanceof(判断对象类型)

8、 用于异常处理的关键字
try(检查异常) catch(捕获异常) finally(最终执行)
throw throws:两多表示抛出异常,但使用位置不同

9、 用于包的关键字
package(创建包) import(导入包)

10、其他修饰关键字
native(本地)
strictfp(strict float point,精确浮点)
transient(变量修饰符,用它声明一个实例变量,在对象序列化时不会被序列化)
volatile(类型修饰符,用来修饰被不同线程访问和修改的变量)
assert(断言,可以看作是异常处理的一种高级形式,用于捕捉我们在代码中做出的假设)
注:main不是关键字,却是被虚拟机所识别的一个名称。

1.2:标识符
在程序中自定义的一些名称。由26个英文字母大小写,数字0-9,符合 _ $组成。
定义合法标识符的规则:
1、 数字不可以开头。
2、 不可以使用关键字。
注:Java中严格区分标识符的大小写。在起名字的时候,为了提高阅读性,要尽量有意义。

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

1.3:常量
定义:Java中固定不变的,表示不能改变的数值。
Java中常量的分类:
1,整数常量。所有整数。
2,小数常量。所有小数。
3,布尔型常量。较为特有,只有两个数值。true false。
4,字符常量。将一个数字字母或者符号用单引号( ’ ’ )标识。
5,字符串常量。将一个或者多个字符用双引号(“”)标识。
6,null常量。只有一个数值就是:null。

7,对于整数,Java有三种表现形式:
十进制:0-9,满10进1。
八进制:0-7,满8进1,用0开头表示。
十六进制:0-9,A-F,满16进1,用0x开头表示。

二进制转化为——>十进制:如1100的十进制等于:2(3)*1+2(2)*1+2(1)*0+2(0)*0=12。
简而言之:十进制转二进,除2取余数;二进制转换为十进制,乘以2的幂数。
负数的二进制表现形式:只要将对应的正数取反加1就行了。
二进制转化为——>八进制:3个二进制就是一个八进制
二进制转化为——>十六进制:4个二进制就是一个十六进制。

进制的由来:任何数据在计算机中都是以二进制的形式存在的,二进制早期由电信号开关演变而来。
一个整数在内在中一样也是二进制的,但是使用一大串的1或者0组成的数值进行使用很麻烦。
所以就想把一大串缩短点,将二进制中的三位用一们表示。
这三位可以取得最大值就是7超过7就进位了,这就是八进制。
但是对于过长的二进制变成八进制还是较长,所以出现的用4个二进制位来表示一位的情况,
四个二进制位最大是15,这就是八进制。
规律:进制越大,表现形式越短。

1.4:变量
概念:内存中的一个存储空间。有自己的名称(变量名)和类型(数据类型)。
作用:用来不断的存放同一类型的数据,并可以重复使用。
定义变量的格式:数据类型 变量名 =初始化值;
数据类型:
Java中有两种数据类型:1、基本数据类型;2、引用数据类型。这里主要讲解基本数据类型。
说明:Java程序中,整数默认:int 小数默认:double

类型的自动提升:
在运算中,当低类型数据与高类型数据进行计算时,系统会自动将表达式中的低类型数据提升到高类型。如:
byte b = 3 ; int c;
c= b + 2; //b会自动提升为int类型进行运算。
强制类型转换:
当程序中,数据类型需要变换时,可以进行强制转换。如:
byte b = 3;
b = b + 4;//报错
b = (byte)b+4;//强制类型转换,强制将b+4的结果转换为byte类型,再赋值给b。

1.5:运算符
1.算术运算符
+ - * / % ++ –

%:取模就是取余数,在进行取模运算时,如果有负数,运算结果取决于运算左边有没有负数。
字符串数据和任何数据使用 +都是相连接,最终都会变成字符串。

2.赋值运算符
符号:= += -= *= /= %=
例: int a,b,c; a=b=c =3;
int a = 3; a+=5;//等同运算a=a+5;

面试题:
     short = 3; 
     s = s + 2;              
     s+=2;
     有什么区别?
     s=s+2 编译失败,因为s会被提升为int类型,运算后的结果还是int类型,无法赋值给short类型。
     s+=2 编译通过,因为+=运算符在给s赋值时,自动完成了强转操作。

3.比较运算符
== != > < >= <= instanceof
注:1、比较运算符的结果都是boolean型,也就是要么是true,要么是false。2、比较运算符“==”不能误写成“=”。

4.逻辑运算符
& :AND(与) | :OR(或) ^:XOR(异或) !:Not(非)
&&:AND(短路) ||:OR(短路)

&:只要两边的boolean表达式结果,有一个为false,那么结果就是false。只有两边都为true,结果为true。
|:两边只要有一个为true,结果为true;只有两边都为false,结果为false。
^:两边相同结果是false,两边不同结果是true。

&和&&的区别:
单&时,左边无论真假,右边都进行运算;
双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
“|”和“||”的区别同理,双或时,左边为真,右边不参与运算。

5.位运算符
左移:<<;空位补0,被移除的高位丢弃,空缺位补0。
右移:>>;被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,空缺位补1。
左移:<<:其实就是乘以2的移动次数幂。
右移:>>:其实就是除以2的移动次数幂。
无符号右移:>>>;被移位二进制最高位无论是0或者是1,空缺位都用0补。
与: &;二进制位进行&运算,只有1&1时结果是1,否则是0。
或:|;二进制位进行 |运算,只有0 | 0时结果是0,否则是1。
异或: ^;任何相同二进制位进行 ^运算,结果是0;1^1=0 , 0^0=0。
不相同二进制位 ^运算结果是1。1^0=1 , 0^1=1。
一个数异或同一个数再次,结果还是那个数。如:7^5^5=7。

反码:~;对二进制进行取反。

 练习:

   1.最有效率的方式算出2乘以8等于几?2<<3.
   2.对两个整数变量的值进行互换(不需要第三方变量)
     n = n ^ m;
     m = n ^ m;//(n^m)m
     n = n ^ m;//n ^ (n ^ m)

    n = n + m;//如果n和m的值非常大,容易超出int范围。
    m = n - m;
    n = n - m;

6.三元运算符
格式:
(条件表达式)?表达式1:表达式2;
a)如果条件为true,运算后的结果是表达式1;
b)如果条件为false,运算后的结果是表达式2;
示例:
获取两个数中大数。
int x=3,y=4,z;
z = (x>y)?x:y;//z变量存储的就是两个数的大数。

1.6:转义字符
概念:通过 \ 来转变后面字母或符号的含义。
常用转义字符:
\b:退格,相当于backspace
\n:换行
\t:制表符,相当于tab键
\r:按下回车键。windows系统中,回车符是由两个字符来表示\r\n。
\:表示反斜杠
\’:表示单引号
\”:表示双引号

1.7:程序流程控制
也称语句,主要有:判断结构、选择结构和循环结构。
1、 判断结构——if
if语句的三种格式:
a) if(条件表达式)
{
执行语句;
}
b) if(条件表达式)
{
执行语句;
}
else
{
执行语句;
}
c) if(条件表达式)
{
执行语句;
}
else if (条件表达式)
{
执行语句
}
……
else
{
执行语句;
}
if语句特点:
1,每一种格式都是单条语句。
2,第二种格式与三元运算符的区别:三元运算符运算完要有值出现。好处是:可以简化if else代码。
3,条件表达式无论写成什么样子,最终的结果不是true就是 false。

if示例:
class IfDemo 
{
    public static void main(String[] args) 
    {
        int x = 1;

        if(x>1)
        {
            System.out.println("yes");
        }
        else
        {
            System.out.println("a");
        }

        /*
        if else 结构 简写格式: 变量 = (条件表达式)?表达式1:表达式2;

        三元运算符:
            好处:可以简化if else代码。
            弊端:因为是一个运算符,所以运算完必须要有一个结果。
        */
        int a = 9,b;
        b = (a>1)?100:200;

        if(a>1)
            b = 100;
        else
            b = 200;


        int n = 3;

        if(n>1)
            System.out.println("a");
        else if(n>2)
            System.out.println("b");
        else if(n>3)
            System.out.println("c");
        else
            System.out.println("d");

        /*
        if(n>1)
            System.out.println("a");
        if(n>2)
            System.out.println("b");
        if(n>3)
            System.out.println("c");
        else
            System.out.println("d");
        */
        System.out.println("over");
    }
}

2、 选择结构——switch
switch语句格式:
switch(表达式)
{
case取值1:
执行语句;
break;
case取值2:
执行语句;
break;
……
default:
执行语句;
break;
}
switch语句特点:
a,switch语句选择的类型只有四种:byte,short,int, char。
b,case之间与default没有顺序。先执行第一个case,没有匹配的case执行default。
c,结束switch语句的两种情况:1、遇到break结束;2、执行到switch结尾结束。
d,如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,
直到遇到break或者switch结尾结束。
注:JDK1.5以后可以接收枚举类型,JDK1.7以后可以接收字符串。
if和switch语句很像。具体什么场景下,应用哪个语句呢?如果判断的具体数值不多,而且符合
byte short int char这四种类型。虽然两个语句都可以使用,建议使用switch语句,因为效率
稍高。其他情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广。

示例:
class SwitchDemo 
{
    public static void main(String[] args) 
    {

        int x = 3;
        /*
        switch(x)//byte short int char
        {
            default:
                System.out.println("d");
                //break;
            case 4:
                System.out.println("a");
                //break;
            case 6:
                System.out.println("b");
                break;
            case 2:
                System.out.println("c");
                break;


        }
        */

        /*
        int a=4,b =2;

        char ch = '+';

        switch(ch)
        {
            case '-':
                System.out.println(a-b);
            break;
            case '+':
                System.out.println(a+b);
            break;
            case '*':
                System.out.println(a*b);
            break;
            case '/':
                System.out.println(a/b);
            break;
            default:
                System.out.println("feifa");

        }
        */
        System.out.println("Hello World!");
    }
}

——- android培训java培训、期待与您交流! ———-

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值