1:求圆的面积

还好看了c++,不然直接看这课件还真是看不懂……加油吧

要从键盘读入数据可以用Scanner类的nextlnt()或者nextDouble()方法,首先创建Scanner类的一个实例,然后调用nextDouble()方法读取double数据,

由于Scanner类存放在java.util包中,因此程序使用import包导入该类

在main方法中使用Scanner类的构造方法创建了一个Scanner类的一个对象,在其构造方法中以标准输入System.in作为参数,

得到Scanner对象之后就可以调用它的有关方法获得各种类型的数据,程序中使用nextDouble()方法得到一个浮点型数据,

然后将其赋给double型的变量radius,最后输出语句输出以该数为半径的圆的面积,程序中圆周率使用Math类的PI常量

package computerArea;
import java.util.Scanner;
public class ComputerArea {
    public static void main(String[] args){
        double radius;
        double area;
        Scanner input = new Scanner(System.in);
        System.out.println("请输入半径值:");
        radius = input.nextDouble();
        area = Math.PI*radius*radius;
        System.out.println("圆的面积为:" + area);
    }
}

2:数据类型

package computerArea;
import java.util.Scanner;
/*infinity的意思是无穷大
 * 字符型字面常量用单引号将字符括起来,比如'我' 'a' '@'等
 * 对于不能用单引号直接括起来的负号,需要使用转义序列来表示,用 '\'来表示转义*/
//另外注意所有关系表达式的返回值都是布尔类型的数据 比如表达式 10 < 9 的结果为false
public class ComputerArea {
    public static void main(String[] args){
        boolean t = true;
        byte b = 0x18;
        short s = 0200;
        int i = 0b101010;
        long l = 0x111_111_11L; //数字中间可以加下划线增加代码可读性,数值不变
        float f = 100.33_3F;
        double d = .00001005;
        System.out.println("boolean t = "+t);
        System.out.println("byte b = "+b);
        System.out.println("short s = "+s);
        System.out.println("int i = "+i);
        System.out.println("long l = "+l);
        System.out.println("float f = "+f);
        System.out.println("double d = "+d);
        System.out.println("\u4F60\u597D"); //前者是'你'的unicode码,后者是'好'的unicode码
    }
}

3:boolean数据,字符数据

package computerArea;
import java.util.Scanner;
public class ComputerArea {
    public static void main(String[] args){
        boolean b;
        char ch1, ch2;
        ch1 = 'Y';
        ch2 = 65;
        System.out.println("ch1 = "+ch1+",ch2 = "+ch2);
        b = ch1 == ch2;
        System.out.println(b);
        ch2++;
        System.out.println("ch2 = "+ch2);
    }
}

4:String的使用

package computerArea;
import java.util.Scanner;
public class ComputerArea {
    public static void main(String[] args){
        String s1 = "java strings" + " are inportant.";
        String s2 = "This is an inportant" +
        " point to note.";
        String s3 = "String number "+'d'+3;
        System.out.println(s1+"\n"+s2+"\n"+s3);
        /*当+运算符的两个操作数一个是字符串而另一个是其他数据类型,
         * 系统会自动将另一个操作数转换成字符串,然后再进行连接*/
        int x = 1, y = 2, z = 3;
        System.out.println("abc"+x + y + z); //输出abc123
        System.out.println(x + y + z+"abc"); //输出6abc
    }
}

/*constant是在程序运行过程中,其值不能被改变的量,常量实际上是由final关键字修饰的变量
* 常量可以在声明同时赋值,也可以声明后赋值,一旦赋值,不可修改
* 例如final double PI = 3.1415926;
* final int MAX_ARRAY_SIZE = 22;
* final int SNO;
*字面量:
*字面量(literals)是某种类型值的表示形式,字面量有三种类型:基本类型的字面量、字符串字面量以及null字面量
*。基本类型的字面量有4种类型:整数型、浮点型、布尔型、字符型。如123、-789为整型字面量,
*3.456、2e3为浮点型字面量,true、false为布尔型字面量,'g'、'我'为字符字面量。*/

/*infinity的意思是无穷大
* 字符型字面常量用单引号将字符括起来,比如'我' 'a' '@'等
* 对于不能用单引号直接括起来的负号,需要使用转义序列来表示,用 '\'来表示转义*/

\ddd    三位八进制数表示的字符

\uxxxx   四位十六进制数表示的字符

java中有自动类型转换和强制类型转换,自动类型转化也称加宽转换,它是将具有较少位数的数据类型转换成为具有较多位数的数据类型

从一种整数类型转化为另一种正数类型是,不会有信息丢失的危险。同样,从float转化为double也不会丢失信息。但从int或long转化为float,

从long转化为double可能发生信息丢失。

比如下面

输出结果是1.23456792E8,损失了精度

布尔类型的数据不能和其他任何类型的数据相互转换

下面演示下类型转换的一个特殊情况

package computerArea;
public class ComputerArea {
    public static void main(String[] args){
        byte a = 40;
        byte b = 50;
        byte c;
        //c = a + b; //注意这句编译不通过,
        c = (byte)(a+b);
        int i = a + b;
        System.out.println("a+b = "+c);
        System.out.println("a+b = "+i);
    }
}
      

我们可以看到a(40)和b(50)都是byte类型的变量,它们的和不超过byte类型的最大值,但是如果将其赋给byte类型的变量c将产生编译错误,这是因为,在计算表达式a+b的时候,编译器首先将操作数类型提升为int类型,最终计算出来a+b的结果90是int类型,如果要将计算结果赋给c,必须使用强制类型转换。这就是所谓的表达式类型的提升。

自动类型转化和强制类型转化也发生在对象中,对象的强制类型转换也使用括号实现

递归小程序求阶乘

package test;

public class RecursionTest {
    public static long factor(int n){
        if(n == 0)
            return 1;
        else
            return factor(n-1)*n;
    }
    public static void main(String[] args){
        System.out.println(20+"的阶乘为"+factor(20));
        System.out.println("max = "+Long.MAX_VALUE); //long 类型的最大值
    }
}

java的数据类型,几个java小程序的更多相关文章

  1. 前端,Java,产品经理,微信小程序,Python等资源合集大放送

    为了感恩大家长久以来的关注和支持,小编准备了一些福利,整理了包含前端,Java,产品经理,微信小程序,Python,网站源码,Android应用视频教程,微信公众平台开发教程及材料等资源合集大放送. ...

  2. 利用java开发一个双击执行的小程序

    之前我们利用java写了很多东西,但是好像都没有什么实际意义. 因为有意义桌面小程序怎么都得有个界面,可是界面又不太好搞.或者 了解到这一层的人就少之又少了. 呀,是不是还得开辟一些版面来介绍awt和 ...

  3. java几个easy出错的小程序

    把基本知识过了一遍,发现了几个自己easy 出错的小程序,记录下来.. .. 1.关于try-catch异常 2,JAVA中的自省机制 3.有继承关系的类中静态函数 1,关于try-catch异常 p ...

  4. java使用dbutils工具类实现小程序 管家婆记账软件

    1.所需创建的包和 jar包 2.创建表结构  #生成一些表数据 ,,'交通银行','2016-03-02','家庭聚餐'); ,,'现金','2016-03-15','开工资了'); ,,'现金', ...

  5. java多线程实现卖票小程序

    package shb.java.demo; /** * 多线程测试卖票小程序. * @Package:shb.java.demo * @Description: * @author shaobn * ...

  6. 首次编译Java小程序

    public class helloworld { public static void main(string[] args) { system.out.println("hello wo ...

  7. 「小程序JAVA实战」 小程序默认加载的页面和生命周期(八)

    转自:https://idig8.com/2018/08/09/xiaochengxu-chuji-08/ 小程序如何加载的呢?生命周期!源码:https://github.com/limingios ...

  8. java面试数据类型

    1. Java的数据类型? 2. Java的封装类型? 3. 基本类型和封装类型的区别? 基本类型只能按值传递,而对应的封装类是按引用传递的. 基本类型是在堆栈上创建的,而所有的对象类型都是在堆上创建 ...

  9. 微信小程序——智能小秘“遥知之”源码分享(语义理解基于olami)

    微信小程序智能生活小秘书开发详解 >>>>>>>>>>>>>>>>>>>>> ...

  10. 微信小程序1

    本次项目主要了解及使用微信小程序,以及更好的理解微信动画,wxss,JavaScript,ajax,xml等技术: 借助的平台是java后端设计语言以及微信小程序界面,设计 该系统分为1,个人用户端: ...

随机推荐

  1. UITableView小知识点总结

    1.UITableView去除空的cell,多余不用的 在viewdidload方法里加上这一句即可 self.tableView.tableFooterView = [[UIView alloc]  ...

  2. FZU 2082 过路费 (树链剖分 修改单边权)

    题目链接:http://acm.fzu.edu.cn/problem.php?pid=2082 树链剖分模版题,求和,修改单边权. #include <iostream> #include ...

  3. CSS溢出文本省略(text-overflow)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  4. C# Windows - ListBox&amp;CheckedListBox

    ListBox和CheckedListBox类的属性 属性 说明 SelectedIndex 这个值表明列表框中选中项的基于0的索引 ColumnWidth 在包含多个列的列表框中,这个属性指定列宽 ...

  5. 串口调试工具(Python2.7+pyserial+Tkinter)

    需要与串口设备进行通讯,那么一个调试工具是必须的. 根据我自己的需要,写了个简易版本的串口调试工具: 预览图: ====================== 项目结构: COM --SerialHel ...

  6. ARP欺骗,骗你没商量

    今天BOSS让我总结ARP欺骗的原理和防范策略,在这里把总结的结果贴出来吧.求人品,求速转正. ARP原理: 在局域网内部,各主机之间以MAC地址作为标识通信对象的标志.然而,有时通信发起的主机并不知 ...

  7. 从yum提示空间不足到根分区扩容

    记录一次安装软件的报错 --1261065212@qq.com         1.系统版本(VMware 虚拟机) [root@ansible-admin ~]# cat /etc/redhat-r ...

  8. 关于python安装一些包时出现的错误解决方法

    1.关于wordcloud的安装 --win10,py3.6环境下安装总是出现安装错误,解决方法,下载wordcloud的wheel文件,进行安装. 详情参考:https://github.com/a ...

  9. [leetcode-108,109] 将有序数组转换为二叉搜索树

    109. 有序链表转换二叉搜索树 Given a singly linked list where elements are sorted in ascending order, convert it ...

  10. JavaScript:改变 HTML 图像

    JavaScript:改变 HTML 图像 1.代码如下: <!DOCTYPE HTML> <html> <head> <meta charset=" ...