基本数据类型

基本数据与计算

2.1 关键字--是一些被JAVA语言赋予了特殊含义的单词,不能随意使用
    特点:在vscode中,关键字都是小写的
    class--表示的是一个类
    public--表示的是函数的权限
    static--表示的是函数的类型
    void--表示的是函数的返回值
    string system--严格来说不是关键字,是JAVA自带类的名称,不能随意的使用
2.2 标识符--程序员在写代码的过程中自定义的一些名称(eg:变量名,类名,函数名,接口名....)
    主函数main其实也是标识符,只不过被写死了
1.标识符的组成规则:

  • 有字母,数字,下划线,美元符号组成
  •  数字不能开头
  • 严格区分大小写
  • 可以为任意长度
  • 不要使用关键字和JAVA中自带类的名称

为了提高标识符的阅读性,尽量起有意义的名字,一般写英文
2.标识符的组成规范:

  • 小驼峰式命名法(如果一个标识符是由多个单词组成的一个词,那么除了第一个单词首字母小写外,其他首字母大写)主要用于变量名和函数名   eg:myName yourBoy 
  • 大驼峰式命名法(如果一个标识符有多个单词组成,那么所有单词的首字母均大写)eg:MyName YourBoy
  • 全大写命名法(若果一个标识符是由多个单词组成,那么每个单词都要大写用下划线连接)eg:MAX_VALUE  DEFAULT_SIZE

2.3常量与进制
常量:本身是数据,数据本身也不能被改变 ----就是在程序中直接出现的数据,同时称之为自变量
常见的常量:

  1. 整数(eg:14)                                                                                                                                                                                                    

    二进制(是一种计数方式 0b开头),八进制(0-7 8个数 0开头),十进制(代码中默认十进制),十六进制(0x开头)

          二进制转八进制:10010101  -- 三个二进制位表示一个八进制位

         八进制 0225--八进制转十进制    5*8^0+2*8^1+2*8^2=149

         二进制转十六进制   四个二进制位表示一个十六进制位

          二进制转六进制:先将二进制转化成十进制,用十进制数除6   余数从下往上写

         负数的二进制:先写出正数的二进制,然后取反加1

  2. 小数(浮点数)                                                                                                                                                                                                     

    一般小数(3.14)

    科学计数小数(3.89e3)

  3. 字符串(有一个或多个数字,字母,符号被双引号包含的数据  eg:"12222","")  是我们最常用的一种常量类型
  4. 字符(由一个数字或字母或符号被单引号包含的数据 eg:'1' )
  5. 布尔(只有两个值 true 和 false    true和false其实是关键字的一种 表示确切的某个值)
  6.  空(null null其实也是一个关键字)                                                                                                                                                             
    class Test01{
        public static void main(String[] args){
            System.out.println(0b1001); //打印二进制 结果十进制
            System.out.println(012);    //打印八进制 结果十进制
            System.out.println(0xA9);   //打印十六进制 结果十进制
            System.out.println(3.14);
            System.out.println(3.89e-3);
            System.out.println('2'); //两个字符
            System.out.println('我'); 
            System.out.println("12asdgjhgasd");
            System.out.println(""); //空串
            System.out.println(' ');  
            System.out.println(true);
            System.out.println(false); 
            //空集 φ 真的就是啥也没有 
        }
    }

    字节是计算机当中最小的计数单元 1kb=1024b 1mb=1024kb

2.4 变量与数据类型
1.变量:意义:本身是可以改变的数据
           本质:变量主要是用于存储一些计算中存储的临时数据,本质就是在内存当中某一个进程的一个临时存储区域
           每一个变量空间在创建时候会被随机的分配地址(真实的物理地址)
           变量空间中的数据在变化的过程中必须保持是可兼容的(至少是同一类型)
          如果直接在代码中用变量的物理地址访问空间中的数据的话,有可能访问不到;为了避免地址的不确定性,才引用了变量             由变量名-地址表来保证变量名和变量之间的关系(底层实现)
         上述变量空间的地址其实就是c语言当中的指针   变量地址本身就是指针
常量数据一定在变量空间吗?--不是所有的常量都在常量池当中,而变量空间存的是常量在常量池中的地址,变量空间里面永远存的都是地址
小精度转大精度是自动转;
大精度转小精度需要强转,精度会损失。
变量地址本身就是指针

2.数据类型:
    1.目的:为了限制当前变量中存储的数据(变量中的地址必须是可兼容的);
      为了限制当前变量空间的大小
    2.分类:

  • 基本数据类型                                                                                                                                                                                                         

    (1)整数:byte型(1字节  2^8种数据可用  128正+128负 (-128~-1 和0~127)(-128~127)),short型(2字节 2^16  -2^15~2^15-1),int型(4字节 2^32),long型(8字节 2^64)   正的到负的先取反后加1 负到正减1取反  整数常量默认为int类型  强转:大转小对于整数之间进行加法运算时得到的值是int型, 之所以分为四类:原因是主要看数字的取值范围

    整型溢出:最大数+1才溢出; byte->short->int->long->float->double;在整数/浮点数进行运算时,谁最大就是谁

     (2)浮点数:float(4字节),double(8字节) 【浮点型常量默认double类型】

     (3)字符 :char(2字节  0~65535指字符的编号)在计算机当中,如何存储字符的?--字符是一些符号,字母,数字,标点符号 它主要是以图像符号的方式存储或者表示信息的

     char c1=97//将字符的编号给字符变量那么在打印这个字符变量时,去码表中找到编号相对应的字符,然后再去打印

     char c2='A'//无论如何赋值,一旦打印的是字符变量,结果一定是字符

  •  字符变量在参与运算时,是以编号身份参加   eg:char c3='a';

                                                                                             System.out.println(c3+1);//输出为98

  • 如何判断一个字符是小写字母?--97~97+25(小写的编码区间) 65~97 大写

  • (4)布尔:true/false (在java中并没有给boolean一个明确的大小,主要与底层虚拟机相关)

                              如果Boolean是一个变量的话,大小是1个字节;如果是一个数组的话,每个空间是4个字节

  •  引用数据类型:字符串(String也不存在具体的大小,它是根据字符串的内容决定;目前而言,可以向用)

2.5 运算符

1.算数运算符(+:【如果+两边都是数字的话则代表的是数学上的+;如果+两边只有一个字符串的话,代表的是连接】(从左向右),-,*,/【如果两边都是整数,结果也是整数;如果两边至少存在一个小数,结果就是小数 】,%(取余)【相当于除法运算,但是得到的结果是余数】,++(自加)【前++ eg:++i【i本身直接+1再参与运算】;后++ eg:i++【先参与运算,再++‘’】】,--(自减))

i++:计算步骤
        1.先开辟一个临时存储区
        2.将i的值复制到存储区
        3.i自身+1
        4.临时存储区的值等待被调用(参与运算,输出,赋值)

如果临时存储区的值被调用,则输出的为临时存储区的值;如果没有被调用,则输出的为+1后的值

对下面这个代码而言,首先先给i赋值为3;将3放进临时存储区,此时i本身变为4,输出i的值是4--(因为临时存储区的i值本身没有进行任何运算,因此输出的值应该是4)----其实也就相当于当打印的数为i时则输出的数为i+1;输出的数为i++是则输出的临时存储区的数

class Test05{
    public static void main(String[] args){
        int i=3;
        i++;
        System.out.println(i);  //4
        System.out.println(i++);//4
        int j=i++;
        System.out.println(j);  //5
        System.out.println(i);  //6
        i=i++;
        System.out.println(i);  //6
        i=i++;
        System.out.println(i);  //6
    }
}

 

2.赋值运算符(+=,-=,*=,/=,%=,=)

3.比较运算符(<,><=,>=,!=,==)这些运算符产生的结果是Boolean型的

 ==不管是在基本数据类型还是面向对象中比的永远都是两个变量(常量)当中所存储的数据的地址

这个地址主要分为:常量在常量池中的地址;对象在堆内存中的地址。

4.逻辑运算符(与【同真则真,有假则假】,或【有真则真,同假则假】,非【非真就是假】,异或【相同为假,不同为真】)运算结果是boolean类型

与:分为&和&&    &:有假则假   &&:若左边为假,则不运行右边,若不为假,则看右边

或:分为|和||       ||:一旦左边为真,则不运行右边,若为假则看右边

5.位运算符(二进制间的运算;&(同真则真),|,^(异或,不同为真,相同为假),>>,<<)

>>相当于在右边增加位 eg:01110111  >>2位----变成01 11011100

<<相当于在左边增加位 eg:01110111<<2位----变成00011101 11

6.三目运算符   变量==布尔表达式?值1:值二;   如果布尔表达式结果为true 则将值1赋予变量  在一定程度上简化了if语句功能,但不能取代if语句

如果,boolean表达式的 结果是true,则将值1赋给变量

如果结果为flase,则将值2赋给变量

    eg:int a=5;

           int b=6;

           int min=a>b?b:a;

如果a>b,为true则min=b;若为flase则min=a.

题目:

1.

/*
  Scanner是一个Java自带的类,主要负责数据输入的问题
 */
import java.util.*;
//从java.util包中导入Scanner;
public class demo1{
    public static void main(String[] args){        
        System.out.print("请输入摄氏温度:");
        Scanner S=new Scanner(System.in);// new Scanner(System.in)表明新创建了Scanner类的对象并且将它的引用值赋值给S
        double x=S.nextDouble();//调用一个nextDouble()方法来读取一个double值;
        System.out.println("该华氏温度为"+((9.0/5)*x+32));
    }
}

 2.

import java.util.*;
class demo2{
    public static void main(String[] args){
        System.out.print("请分别输入radius和length:");
        Scanner S=new Scanner(System.in);
        double radius=S.nextDouble();
        double length=S.nextDouble();
        double area=radius*radius*3.14;
        double volume=area*length;
        System.out.println("这个圆柱的体积是:"+volume);
    }
}

.3.

import java.util.*;
public class demo3{
    public static void main(String[] args){
        System.out.print("输入一个位于0-1000之间的数");
        Scanner S=new Scanner(System.in);
        int num=S.nextInt();
        int a=num%10;//得到各位
        num/=10;
        int b=num%10;//得到十位
        num/=10;
        int c=num%10;//得到百位
        int sum=a+b+c;
        System.out.println("该数的各位数字之和为:"+sum);
    }
}

4.

 

import java.util.*;
class demo4{
    public static void main(String[] args){
        System.out.print("请输入时区偏移量:");
        int offset=S.nextInt();
        Scanner S=new Scanner(System.in);
        //总毫秒数
        long totalMillis=System.currentTimeMillis();//调用currentTimeMillis()方法获取
        //总秒数
        long totalSeconds=totalMillis/1000;
       //当前秒数
        long currentSecond=totalSeconds%60;
        //总分钟数
        long totalMinutes=totalSeconds/60;
        //当前分钟数
        long currentMinute=totalMinutes%60;
        //总小时数
        long totalHours=totalMinutes/60;
        //当前小时数
        long currentHours=totalHours%24;
        System.out.println("current time is"+currentHour+":"+currentMinute+":"+currentSecond);
    }
}

5.

class demo5{
    public static void main(String[] args){ 
      double money=100;
      double rate=0.05;
      //第一个月的本息和
      double sum=money*(1+rate/12);
      //第二个月的本息和
      sum=(sum+money)*(1+rate/12);
      //3
      sum=(sum+money)*(1+rate/12);
      //4
      sum=(sum+money)*(1+rate/12);
      //5
      sum=(sum+money)*(1+rate/12);
      //6
      sum=(sum+money)*(1+rate/12);
      System.out.println("6个月后的金额"+sum);
    }
}

6.

import java.util.*;
class demo6{
    public static void main(String[] args){
        Scanner s=new Scanner(System.in);
        System.out.print("请输入第一个坐标:");
        double x1=s.nextDouble();
        double y1=s.nextDouble();
        System.out.print("请输入第二个坐标:");
        double x2=s.nextDouble();
        double y2=s.nextDouble();
        double z=Math.pow(Math.pow((x2-x1),2)+Math.pow((y2-y1),2),0.5);
        System.out.println("两点间的距离为:"+z);
    }
}

7.

import java.util.*;
class demo7{
    public static void main(String[] args){
        Scanner s=new Scanner(System.in);        
        System.out.print("输入三个点的坐标:");
        double x1=s.nextDouble();
        double y1=s.nextDouble();
        double x2=s.nextDouble();
        double y2=s.nextDouble();
        double x3=s.nextDouble();
        double y3=s.nextDouble();
        double z1=Math.pow(Math.pow((x2-x1),2)+Math.pow((y2-y1),2),0.5);
        double z2=Math.pow(Math.pow((x3-x2),2)+Math.pow((y3-y2),2),0.5);
        double z3=Math.pow(Math.pow((x3-x1),2)+Math.pow((y3-y1),2),0.5);
        double n=(z1+z2+z3)/2;
        double m=Math.pow(n*(n - z1)*(n - z2)*(n - z3),3);
        System.out.printf("area=%.2f\n",m);
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值