零基础学习JAVA.第二天:Java编程基础

2-1.标识符
java语言基础组成:
关键字,标识符,注释,常量和变量,运算符,语句,函数,数组。
标识符:
在程序中自定义的一些名称。(最好别用关键字,用了首字母大写)
由26个英文字母大小写,数字:0~9 符号:_$组成
定义合法标识符规则:1.数字不能开头2.不可以使用关键字
java中严格区分大小写
注意:在起名时,为了提高阅读性,要尽量有意义。
java中的名称规范:
包名:多单词组成时所有字母都小写。xxxyyyzzz
类名接口名:多单词组成时,所有单词的首字母大写。XxxYyyZzz
变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写。xxxYyyZzz
常量名:所有字母都大写。多单词时每个单词下划线连接。 XXX_YYY_ZZZ


2-2.常量
常量表示不能改变的数值。
java中常量的分类:
1.整数常量。所有整数
2.小数常量。所有小数
3.布尔型常量。较为特有,只有两个数值。true(真) false(假)。
4.字符常量。将一个数字字母或者符号用单引号(‘ ’)标识。
5.字符串常量。将一个或多个字符用双引号标识。例如:“a” ;“ab”;“”
6.null常量。只有一个数值就是:null。
对于整数,java有三种表现形式。
十进制:0~9,满10进1
八进制:0~7,满8进1,用0开头表示。
十六进制:0~9,A~F,满16进1,用0x开头表示。


2-3.进制的特点
计算机里边都是二进制。
一个字节就是八位。1Byte=8bit
ASCII编码表
二进制表示形式由1.0.1.0....组成
八进制,用二进制3位表示一位。
十六进制,用二进制4位表示一位。
四个二进制位最大是15,这就是十六进制。(也就是2的三次方减1等于15)
规律:进制越大,表现形式越短。


2-4.进制转换(十进制和二进制)
二进制和十进制之间的转换.
十进制——>二进制。6的二进制。110
原理:对十进制数进行除2运算。
二进制——>十进制
原理:二进制乘以2的过程。110,0*2^0+1*2^1+1*2^2=0+2+4=6
11111111  一个字节最大值为:2^8-1=255


2-5.进制转换(八进制和十六进制)
四个二进制位就是一个十六进制。例:0101-1010=90=0x5A
四个二进制位最大值(2的4次方减1)是15,所以逢16进1
三个二进制位就是八进制。例:01-011-010=‘1+3+2’=123


2-6.进制转换(负数的二进制)
6=110    二进制里边          0000-0000 0000-0000 0000-0000 0000-0110
-6:其实就是6的二进制取反+1  1111-1111 1111-1111 1111-1111 1111-1001 
取反:将二进制的1变成0,0变成1.
负数二进制最高位是1,1是取反来的


2-7.变量


概念:就是将不确定的数据进行存储。也就是需要在内存中开辟一个空间。
名称:变量名
空间的类型:数据类型
开辟内存空间就是通过明确数据类型,变量名称数据来完成的
数值型:
整数类型:(byte字节,short短整型,int整型,long长整型) 8位,16位,32位。。。。一般默认是用int
    范围: -128~127; -2^15~2^15-1; 2^31~2^31-1; ......
浮点类型:(float单精度,double双精度)默认是double
区别:精确程度不同。
字符型(char):取值范围0~6535  俩字节
布尔型(boolean)


//定义变量格式;
//数据类型  变量名 = 初始化值
例如://定义一个int类型变量,取值为4 。 也就是  int x=4
//演示其它数据类型。
byte b=2;//-128~127
short s=30000;
long l=41;
float f=2.3f;
double d=34.56;
char ch=‘4’;//定义字符用单引号
char ch1=‘a’;
char ch2=‘+’;
char ch3=‘ ’;//空格也可以定义
boolean bo=true;
boolean bo1=false;
什么时候定义变量?
当数据不确定时,需要对数据进行储存时。就定义一个变量来完成储存动作。




2-8.类型转换
自动类型提升。强制转换(因为在ASCII中都有)。
byte b=2
b=(byte)(b+2)不可以是b=b+2
System.out.println(‘a’+1 )会去ASCII表里的a的值+1,所以要强制转换写成((char)(‘a’+1 ))


2-9.算数运算符
算术运算符,赋值运算符,比较运算符,逻辑运算符,位运算符,三元运算符。
int x=4270;
x=x/1000*1000    //4270除以1000等于4舍弃余数,乘以1000等于4000
10%4   //10除以4取余数2      
5%1    //5除以1没余数取0
1%5    //..............1
左边如果小于右边,结果就是左边。
..............等于........,..................0
右边.......是1...............................0
负数:负数结果只取被模数(左边)。例如-1%5 ,1%-5都等于1。
++ 自增1;-- 自减1   a++=a+1,a--=a-1
b=a++先把a放到b再+1,b=++a先把a+1再放到b
字符串数据和任何数据使用+都是相连接,最终都会变成字符串。;
(“a=”+a+“b=”+b)就是a=a,b=b


2-10.转义字符
System.out.println("hello world")中println的ln是括号里内容都被打印完后换行一次的,去掉就不是下边是后边。
System.out.println("hello\nworld")\n是hello world的中间换行。只换n后边的行
转义字符:通过\来转变后面字母或符号的含义
\n:换行
\b:退格,相当于backspace
\r:按下回车键
\t:制表符,相当于tab键
windows系统,回车符是由两个字符来表示\r和\n,linux系统,只有\n;Dos系统,\n
"\"hello\""打印出来是"hello"    "\\hello\\"打印出来是\hello\  ‘\n’表示一个回车符
 
2-11.赋值和比较运算符
+=,-=,*=,/=,&=
x+=4; //x=x+4
s=s+5和s+=5左边两次运算右边一次运算,区别:左边这句编译失败,右边编译成功。也就是s+5所得的值是int的值,放到s装不下容易丢失精度。而s+=5是只做赋值运算,内部有个自动转换动作。
int a,b,c    a=b=c=5  \\同时给abc赋值。
==相等于
!=不等于


2-12.逻辑运算符
& and(与)   x>3 & x<6=true & true=true(也就是3<x<6,java中不能这么写)
| or(或)
^ xor(异或)
!not(非)
&&and(短路)
||or(短路)
用于连接boolean类型表达式
&与:
true & true=true
true & false=false
false & true=false
false & false=false
只要两边的boolean表达式结果,有一个为false,那么结果就是false。
只有两边都为true,结果为true
|或:
true | true=true
true | false=true
false |true=true
false| false=false
两边一个为true,结果为true
两把都是false,结果为false
^异或:
true ^ true=false
true ^ false=true
false ^ true=true
false ^ false=false
两边相同是false,两边不同结果是true
&和&&特点:
&:无论左边是true还是false,右边都运算
&&:当左边为false时,右边不运算。
|和||特点:
|:两边都运算
||:当左边为true,右边不运算




2-13.位运算符(二进制运算)
<< :  左移    3<<2   3 的二进制 11 向左移两位就是 1100=12,也就是3*2的2次方
>> :  右移    6>>2   6 的二进制110向右移两位就是1,后边舍弃,也就是6除以2的2次方
>>>:   无符号右移    无论正数还是负数都是补0
&  :   与运算
|  :   或运算
^  :   异或运算
~  :   反码
左移其实也就是乘以2的移动的位数次幂,右移就是除以2的移动位数次幂。
>> :最高位补什么由原有数据最高值而定。
     如果最高位0,右移后,用0补空位。
     如果最高位1,右移后,用1补空位。
>>>:  无论最高位是什么,右移后,都用0补。


2-14.位运算符(与-或-异或)
6&3 : 二进制110&011,0为假1为真,最后等于10也就是十进制2
6|5 : 二进制110|101,。。。。。。。。。。111。。。。。7
6^5 :  。。。。。。。。。。。。。。。。。。11。。。。。3
一个数异或同一个数,结果还是那个数。也就是7^4^4=7


2-15.位运算符(练习)
1.最有效率的方式算出2乘以8等于几? 答案:2<<3
2.对两个整数变量的值进行互换(不需要第三方变量)。
int n=3,m=8
第一种:通过第三方变量
int temp;
temp=n
n=m
m=temp
第二种:不通过第三方变量
11=3+8    n=n+m //如果n和m的值非常大,容易超出int的范围。
3=11-8    m=n-m
8=11-3    n=n-m


第三种:n=n^m;
           m=n^m;   //(n^m)^m
            n=n^m;   //n^(n^m)


2-16.位运算符(练习2&三元运算符)
十六进制表现形式:右移4位,与15比较
  八进制表现形式:右移3位,与7比较
  二进制表现形式:右移1位,与1比较





三元运算格式:
(条件表达式)?表达式1:表达式2
如果条件为true,运算结果是表达式1
。。。。。false,。。。。。表达式2
示例:
int x=1,y;      //定义x=1,y的值不确定
y=(x>1)?100:200;//用x和做比较,大于1就是y=100,不大于1就是y=200
System.out.println("y="+y);

2-17.语句(if)
程序流程控制:判断结构,选择结构,循环结构。
判断语句:
if...else....../如果。。。。否则。。。。
if else结构,简写格式:变量=(条件表达式)?表达式1:表达式2
三元运算符特点:
好处,可以简化if else 代码。

弊处,因为是一个运算符,所以运算完必须有一个结果。





2-18.语句(if练习)

练习1:

练习2:



2-19.语句(Switch)


teswitch特点
a.switch语句选择类型只有4种:byte,short,int,char
b.case之间与default没有顺序,先执行case,没有匹配的case执行default
c.结束switch语句的两种情况:遇到break,执行到switch语句结束。

d.如果匹配的case和default没有对应break,那么程序会继续向下执行,运行可执行的语句,直到遇到break或者switch结尾结束。

char演示:


无结尾结束:





2-20.语句(Switch练习)


if和switch语句很像。具体什么场景下,应用哪个语句呢?

如果判断的具体数值不多,而是符合byte,short,int,char这四种类型。
虽然两个语句都可以使用,建议使用swtich语句,因为效率稍高。


其它情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值