02day_Java基础语法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了02day_Java基础语法相关的知识,希望对你有一定的参考价值。

---恢复内容开始---

1、变量

变量是内存中装载数据的小盒子,你只能用来把它来存数据和取数据。

2、计算机存储单元

计算机最小存储单元叫“字节(byte)”,用B表示;计算机存储设备的最小信息单元叫“位(bit)”,用b表示。

当程序只需要1个位的空间,操作系统最小会分配给程序1个字节。

换算:

  1B(字节)=8bit;

  1KB=1024B;

  1MB=1024KB;

  1GB=1024MB;

  1TB=1024GB;

  1PB=1024TB

3、基本类型:四类八种

技术分享图片

整数常量可以根据所在范围来确定类型,Java中默认的整数类型是int类型。

Java中默认的浮点类型是double类型。

4、创建变量

格式语法:

数据类型  变量名  =  数据值

  int    a    =  100;

 1 public class Variable{
 2     public static void main(String args[]){
 3         //定义整数类型,字节类型,byte类型
 4         byte b=100;
 5         System.out.println(b);
 6         
 7         //定义整数类型,短整型,short类型
 8         short s=200;
 9         System.out.println(s);
10         
11         //定义整数类型,短整型,int类型
12         int i=5000;
13         System.out.println(i);
14         
15         //定义整数类型,长整型,long类型
16         long l=123456789123456789L;
17         System.out.println(l);
18         
19         //定义浮点型数据,单精度float类型
20         float f=1.0F;
21         System.out.println(f);
22         
23         //定义浮点型数据,双精度double类型
24         double d=2.2;
25         System.out.println(d);
26         
27         //定义字符型数据,char
28         char c=‘我‘;
29         System.out.println(c);
30         
31         //定义布尔类型,boolean
32         boolean bool=true;
33         System.out.println(bool);
34     }
35 }

运行结果:

技术分享图片

 

处理java错误“编码 GBK 的不可映射字符”:首先记事本打开java源文件,然后另存为,选择ANSI编码,覆盖,再试一下,ok,编译通过。

技术分享图片

 

 5、定义字符串变量

1 public class Variable_1{
2     public static void main(String args[]){
3         //定义变量,字符串类型,数据类型,String表示字符串的数据类型
4         String s="我爱Java";
5         //String属于引用类型,定义方式和基本类型一样
6         System.out.println(s);
7         
8     }
9 }

运行结果:

技术分享图片

6、变量定义和使用的注意事项

①定义变量后,不赋值,不可以使用;

②变量是有自己的作用范围,变量的有效范围是定义的一对大括号内;

③变量不允许重复定义。

7、数据类型转换

范围小的数据类型值可以转换成范围大的数据类型值;

范围大的数据类型值不可以转换成范围小的数据类型值;

范围从小到大:byte→short→int→long→float→double

(一)自动类型转换:范围小的数据类型转换成范围大的数据类型;

格式:范围大的数据类型 变量=范围小的数据类型值;

 1 public class DataConvert{
 2     public static void main(String args[]){
 3         double d=1000;//出现了类型的自动转换,int自动转成double
 4         System.out.println(d);
 5         
 6         int i=100;
 7         double d2=i;//出现了类型的自动转换,int自动转成double
 8         System.out.println(d2);
 9         
10         byte b=10;
11         int j=b;//出现了类型的自动转换,byte自动转成int 
12         System.out.println(j);
13     }
14 }

技术分享图片

(二)强制转换:数据类型取值范围大的,转成取值范围小的类型

格式:被转后的数据类型  变量名 = (被转后数据类型)要被转的数据类型

 1 public class DataConvert_1{
 2     public static void main(String args[]){
 3         //double浮点,转成整数int
 4         double d=3.14;
 5         //被转后的数据类型  变量名 = (被转后数据类型)要被转的数据类型
 6         int i=(int)d;
 7         System.out.println(i);
 8         
 9         byte b=(byte)200;
10         System.out.println(b);
11     }
12 }

运行结果:

技术分享图片

关于byte b=(byte)200;为什么输出的是-56?
byte类型的范围是-128到127.
b+200=203超过范围了,java中就得用补码进行存储。
所谓补码,就是符号位不变,其余位取反,最后+1.
符号位指的是二进制中的第一位,比如1100 0011中,第一个1就是符号位。(1表示负数,0表示正数)

203的二进制位:1100 1011
取补码: 1011 0100=52(注意符号位不参与运算) ,结果+1=53。又因为符号位是1,所以是-53。

8、运算符

 ①算术运算符

  +  加法,连接符

  -  减法

  *  乘法

  /  除法

    %   取模,获取余数

  ++ 自增1

  --   自减1

 1 public class Operator{
 2     public static void main(String args[]){
 3         //+ 连接作用,将一个连接符和其他数据连接起来
 4         //+ 遇到字符串,变成连接符号“5+5=55”
 5         //+ 任何字符只要和字符串+。所有的数据都变成了字符串
 6         System.out.println("5+5="+5+5);
 7         
 8         //除法运算
 9         int i=100;
10         int j=9;
11         System.out.println(i/j);//输出11,两个整数相除,得到的一定是整数
12         
13         //取模运算,两个数相除,获取的是余数
14         int k=6;
15         int m=4;
16         System.out.println(k%m);//输出2
17         
18         //自增运算 ++
19         int a=3;
20         int b=4;
21         
22         a++;//变量a自己增加1
23         System.out.println(a);//输出4
24         
25         ++b;
26         System.out.println(b);//输出5
27     }
28 }

运行结果:

技术分享图片

 

++a和a++的区别

 1 public class Operator_1{
 2     public static void main(String args[]){
 3         //符号写在前面和写在后面,在变量独自运算的时候没有区别,但是变量要是参加了运算,就有区别了
 4         int i=5;
 5         int j=i++;//++后算,先将i的值,赋值j,i自己再++
 6         System.out.println(i);//6
 7         System.out.println(j);//5
 8         
 9         int m=5;
10         int n=++m;//++先算,变量m++ 6 变量赋值给n
11         System.out.println(m);//6
12         System.out.println(n);//6
13     }
14 }

运行结果:

技术分享图片

②赋值运算符

  =

  +=  -=  *=  /=  %=

特别注意:=是赋值,==是等于

 1 public class Operator_2{
 2     public static void main(String args[]){
 3         //=赋值运算符,将右边的值赋值给左边的变量
 4         int i=3;
 5         i=i+3;
 6         System.out.println(i);//6
 7         
 8         //+=赋值运算符 i+=3 i=i+3
 9         int j=5;
10         j+=6;//j=j+6
11         System.out.println(j);
12         
13         byte b=1;
14         b=(byte)(b+1);
15         System.out.println(b);
16         
17         byte b1=1;
18         b1+=b1;//等同b1=(byte)(b1+1);
19         System.out.println(b);
20     }
21 }

运行结果:

技术分享图片

③比较运算符

比较运算符,又叫关系运算符,它是用来判断两个操作数的大小关系及是否相等关系的,结果是布尔值true或者false

  ==

   !=

  >

  <

  >=

  <=

 1 public class Operator_3{
 2     public static void main(String args[]){
 3         int i=3;
 4         int j=4;
 5         System.out.println(i=j);//4,已经将4赋值给i
 6         System.out.println(i==j);//true
 7         
 8         System.out.println(2==1);//false
 9         System.out.println(2!=1);//true
10     }
11 }

运行结果:

技术分享图片

④逻辑运算符

  &  与  一假则假

  |   或  一真则真

  ^  异或  两边相同为false,不同为true

  !  非  取反  !true=false  !true=false

  &&  短路与  短路与,一边是false,另一边不运行

  ||  短路或  短路或,一边是true,另一边不运行

 1 public class Operator_4{
 2     public static void main(String args[]){
 3         System.out.println(false&true);//flase
 4         System.out.println(true|true);//true
 5         System.out.println(true^true);//false
 6         System.out.println(!true);//false
 7         
 8         System.out.println("-----------------------------------");
 9         int i=3;
10         int j=4;
11         System.out.println(3>4 && ++j>2);
12         System.out.println(i);//3
13         System.out.println(j);//4,一假则假,++j>2不运行
14         
15         System.out.println(3==3 || ++j>2);
16         System.out.println(i);//3
17         System.out.println(j);//4,4,一真则真,++j>2不运行
18     }
19 }

运行结果:

技术分享图片

 ⑤三元运算符

  布尔表达式 ? 结果1:结果2;

  布尔表达式结果是true,三元运算符的结果就是结果1;

  布尔表达式结果是false,三元运算符的结果就是结果2;

1 public class Operator_5{
2     public static void main(String args[]){
3         System.out.println(3>2?99:88);//99
4         
5         String s= 0==0?"哈哈":"呵呵";
6         System.out.println(s);//哈哈
7     }
8 }

运行结果:

技术分享图片

9、小案例

实现商品库存清单案例

  (一)需求分析,打印

技术分享图片

 

 

  (二) 步骤:

  (1)实现表头,是固定数据,直接输出语句 sop;

  (2)表格中间,商品数据,采用变量形式,定义变量,找对数据类型;

      输出所有变量

  (3)表格尾巴,一部分数据固定;

      另一部分,商品数据进行数学计算,运算符

  (三)代码

 1 public class Shopp{
 2     public static void main(String args[]){
 3         //输出表头固定数据
 4         System.out.println("----------商场库存清单----------");
 5         System.out.println("品牌型号    尺寸    价格    库存数");
 6         //定义表格中的数据变量
 7         //品牌型号 String;尺寸,价格 double;库存 int
 8         String macBrand="MacBookAir";
 9         double macSize=13.3;
10         double macPrice=6988.88;
11         int macCount=5;
12         
13         String thinkBrand="ThinkPadT450";
14         double thinkSize=14;
15         double thinkPrice=5999.99;
16         int thinkCount=10;
17         
18         String asusBrand="ASUS-FL5800";
19         double asusSize=15.6;
20         double asusPrice=4999.5;
21         int asusCount=18;
22         //商品价格信息变量进行打印,变量之间加入一定的字符串空格
23         System.out.println(macBrand+"      "+macSize+"     "+macPrice+"    "+macCount);
24         System.out.println(thinkBrand+"    "+thinkSize+"     "+thinkPrice+"   "+thinkCount);
25         System.out.println(asusBrand+"     "+asusSize+"     "+asusPrice+"    "+asusCount);
26         
27         //计算库存总数,所有商品数量库存求和
28         int totalCount=macCount+thinkCount+asusCount;
29         //计算所有商品库存的中金额,每个商品价格*库存数
30         double totalMoney=macCount*macPrice+thinkCount*thinkPrice+asusCount*asusPrice;
31         //输出表格底部
32         System.out.println("总库存数:"+totalCount);
33         System.out.println("商品库存总金额:"+totalMoney);
34     }
35 }

 运行结果:

技术分享图片

 











以上是关于02day_Java基础语法的主要内容,如果未能解决你的问题,请参考以下文章

03day_Java基础语法

01day_Java基础语法

10day_Java面向对象

JSP 基础语法

JSP开发中的基础语法

09day_Java面向对象