Java简介.Java中的数据类型和运算符

学习目标:

1. Java简介

2. JDK的安装与环境搭建

3. 变量

4.Java中的数据类型

5.运算符

一.Java简介

Java的优势

1.跨平台(”一次编译,到处运行”)

2.健壮、安全

   Java在安全性上下了很大功夫,使用Java可以构建防病毒,防篡改的系统。开源、安全处理机制。

3.分布式

4. 多线程

5. 面向对象

6. 高性能

Java发展方向

1.JavaSE (Java Standard Edition):Java标准版

   基础,可以开发桌面应用、图形化应用等

2. JavaEE(Java Enterprise Edition):Java企业版

     开发企业级应用

3. JavaME(Java Micro Edition)

    手持设备应用开发(eg:安卓、机顶盒嵌入程序)

二: JDK的安装与环境搭建

基本概念:

   JDK(Java Development Kits)-- Java开发工具集

   JRE(Java RunTime Environment)Java运行时环境

设置环境变量:

1添加JAVA_HOME环境变量,指向JDK安装目录

2修改path:用于指定操作系统的可执行指令的路径

DOS命令:

1.切换目录:

    cd  /d 目标目录

2.编译java源代码

    javac  -d . java源文件名称

3.运行.class文件(字节码文件)

    java 包.class类名

三:变量

变量:程序执行中数据可变的一块存储空间

变量名:定义变量的标识符

变量值:内存单元中所装载的数据

每一个变量使用前必须要先申请(声明),然后必须进行赋值(填充内容),才能使用。

eg:

 int i = 20;

 int y;

 y = i +10;

四:数据类型

整数类型


Java语言的整型常量默认为int。 

要声明long型可以加‘l’或‘ L’,如:long  l = 3L;

浮点类型


Java浮点型常量默认为double型,如要声明一个变量为float型,则需在数字后面加f或F,如: 

double  d = 3.14;

float  f = 3.14f;

转义字符

数据类型的转换:

1.自动转型:小范围数据转换成大范围的数据

      大范围数据类型  变量名=小范围数据类型的值;

      eg:  long x=5;

2.强制转型:大范围数据类型转换成小范围数据类型

      小范围数据类型  变量名=(小范围数据类型)大范围数据类型的值;

      eg:  int a=(int)5L;

3. boolean 类型不能转换成任何其它数据类型

package org.westos.www;
public class NumberDemo
{
    public static void main(String[] args)
    {
        int a=10;
        long b=5L;
        long c=a;   // 自动转型:小范围数据转换成大范围的数据
        System.out.println(c);
        
        int x=(int)b;   // 强制转型:大范围数据转换成小范围数据
        System.out.println("强制转型成int后:"+x);

        float f=(float)2.3;  // 强制转型,将double类型转换为float类型
        System.out.println("强制转型成float后:"+f);
    }
}

五:运算符

算术运算符:+ 、 - 、 * 、 / 、 % 、 ++ 、 --

赋值运算符:= 、 += 、 -= 、 *= 、 /= 、 %=

关系运算符:> 、 < 、 >= 、 <= 、 == 、 !=

逻辑运算符:! 、 & 、 |  、 && 、 ||

位运算符:& 、 | 、 ^ 、 ~ 、 >> 、 << 、 >>>

字符串连接运算符:+

三目运算符 :?:

1.易混淆运算符:

   1. 自增运算符:++

            易混淆的点:a++ 先保存旧值,再自增,用旧值参加运算

                                ++a 直接自增,用自增后的值参加运算

package org.westos.www;
public class Difficult
{
   public static void main(String[] args)
   {
       int i=0;
       i=i++;
       /*
        * int temp=i; 保存i的旧值
        * i=i+1; 对i进行自增
          i=temp;
       **/
       System.out.println("i="+i);
       System.out.println("********************");
       int j=0;
       j=++j;
       /**
        * j=j+1;  直接自增,不保存旧值
          j=j;
       */
       System.out.println("j="+j);
   }
}

    2. 短路与&& 如果前面的判断结果为false,则后面的判断不再执行。

        非短路与&  每一个判断逻辑都要执行

    3. 短路或|| 如果前面的判断结果为true,则后面的判断不再执行。

        非短路或 |  每一个判断逻辑都要执行

2.位运算符:

    在计算机中数字的运算都是按照“补码”的形式运算的。

    正数的原码、反码、补码是相同的;

    负数的反码是其原码的除了符号位以外的二进制位取反。

    负数的补码是反码加1。

    符号位是最左边的那个二进制位,0代表正数,1代表负数。

 

    按位与:& 两个二进制位都为1,结果才为1;其余情况结果为0;

    按位或:|  只要有一个二进制位为1,结果就为1;两个二进制位都为0,则结果为0;

    按位异或:^  相同的两个二进制位结果为0,不同的二进制位结果为1。

    按位取反:~ 0变1,1变0.

    右  移: >> 右移后,左边的二进制位用符号位来补,正数补0,负数补1

    左  移: << 左移后,右边的二进制位用0来补。

    无符号右移:>>> 右移后,左边的二进制位用0来补。

package org.westos.www;
public class BitOperate
{
   public static void main(String[] args)
   {
       int a=10;
       int b=3;
       System.out.println("10&3的结果是:"+(a&b));  // 2
       int c=-8;
       System.out.println("-8按位取反的结果:"+(~-8));   // 7
       System.out.println("-8右移3位后:"+(-8>>3));  // -1
       System.out.println("-8无符号右移3位后:"+(-8>>>3));
   }
}

3.三目运算符:

   结果返回boolean值的表达式?"结果为true时内容":"结果为false时内容"

package org.westos.www;
public class GiveOperate
{
    public static void main(String[] args)
    {
        int a=5;
        a+=3;  // 相当于a=a+3;
        System.out.println("a="+a);   // 8
        int b=6;
        b*=7;  // 相当于b=b*7;
        System.out.println("b="+b);  // 42
        int c=100;
        c%=3;  // 相当于c=c%3;
        System.out.println("c="+c);  // 1
    }
}

六.补充:十进制与二进制的转换

十进制转换为二进制:

       方法:判断十进制数字是否有小数部分,若没有,只需将整数部分连续除以2,记下过程中的余数,直到商为0,然后将余数倒序排列即可得到二进制数值;若有小数,将整数部分和小数部分分开计算,小数部分连续乘以2,每次都取前次的小数部分,记下每次积的整数部分(1或0),然后顺序排列,添上整数部分可得到二进制数值

二进制转换为十进制:

方法:将二进制每一位上的0或1乘以2的所在位数的次方,整数部分的指数为正,小数部分的指数为负。

七.例

package org.baidu.www;

import java.util.Scanner;

public class Info
{
    public static void main(String[] args)
    {
        Scanner scan=new Scanner(System.in); // 实例化一个Scanner对象
        System.out.print("请输入语文成绩:");
        int chinese=scan.nextInt();  // 阻塞控制台,等待用户输入整数类型
        System.out.print("请输入数学成绩:");
        int math=scan.nextInt();   // 阻塞控制台,等待用户输入整数类型
        int total=chinese+math;
        System.out.println("总分是:"+total);
    }
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值