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生鲜电商平台-APP/小程序接口传输常见的加密算法及详解

    Java生鲜电商平台-APP/小程序接口传输常见的加密算法及详解 说明:Java生鲜电商平台-APP/小程序接口传输常见的加密算法及详解,加密算法,是现在每个软件项目里必须用到的内容. 广泛应用在包括 ...

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

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

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

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

  5. Java后端使用socketio,实现小程序答题pk功能

    在使用socket.io跟前端通信过程中,出现了一系列问题,现做下记录. 一.功能需求是,在小程序端,用户可相互邀请,进入房间后进行答题PK.实现方法是,用户点击邀请好友,建立连接,查询当前是否有房间 ...

  6. java实现一个简单的爬虫小程序

    前言 前些天无意间在百度搜索了一下以前写过的博客 我啥时候在这么多不知名的网站上发表博客了???点进去一看, 内容一模一样,作者却不是我... 然后又去搜了其他篇博客,果然,基本上每篇都在别的网站上有 ...

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

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

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

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

  9. 首次编译Java小程序

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

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

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

随机推荐

  1. #pragma pack(push,1)与#pragma pack(pop)

    这是给编译器用的参数设置,有关结构体字节对齐方式设置, #pragma pack是指定数据在内存中的对齐方式. #pragma pack (n)             作用:C编译器将按照n个字节对 ...

  2. pyhton10min系列之程序员的浪漫-足迹生成器,有视频教程

    记录去过的足迹 本文为原创文章 项目主页 跪求star 程序员的浪漫,我女朋友蘑菇喜欢旅游,于是我做了这个,记录2015一起去过的地方,祝她圣诞快乐 如果觉得对你有帮助,github求个star 视频 ...

  3. 关于block 用法

    Block  Apple 在C, Objective-C, C++加上Block這個延申用法.目前只有Mac 10.6 和iOS 4有支援.Block是由一堆可執行的程式組成,也可以稱做沒有名字的Fu ...

  4. mybatis一对一关联表查询

    先创建一个表 CREATE TABLE teacher( t_id INT PRIMARY KEY AUTO_INCREMENT, t_name ) ); CREATE TABLE class( c_ ...

  5. 《刺杀金正恩》1080p全高清无水印,附中文字幕 bt种子下载,附字母(百度网盘/360云盘)

    <刺杀金正恩>1080p全高清无水印,附中文字幕下载(百度网盘/360云盘) 种子和字幕下载地址: thunder://QUFlZDJrOi8vfGZpbGV8JUU5JTg3JTg3JU ...

  6. 名叫Florida的女孩问题

    近读列纳德·蒙洛迪诺的<醉汉的脚步>,读到第六章,作者举了一个超级变态的例子来解释条件概率或者说是贝叶斯概率. 1.先来看一个简单点的问题:已知所有有2个孩子的家庭,其中一个家庭2个孩子都 ...

  7. Strata 2014 上的 AzureCAT 粉笔会谈

     本周,AzureCAT 团队非常高兴在 Strata 会议上首次集体亮相.对于那些对 AzureCAT 团队不太熟悉的人来说,我们是 Microsoft 云与企业部门一个核心的国际性团队,由大约 ...

  8. Windows Azure HDInsight 支持预览版 Hadoop 2.2 群集

     Windows Azure HDInsight 支持预览版 Hadoop 2.2 群集 继去年 10 月推出 Windows Azure HDInsight 之后,我们宣布 Windows Az ...

  9. android基础篇------------java基础(12)(多线程操作)

    <一>基本概念理解 1.什么是进程? 进程就是在某种程度上相互隔离,独立运行的程序.一般来说,系统都是支持多进程操作的,这所谓的多进程就是让系统好像同时运行多个程序. 2.什么是线程呢? ...

  10. 提高你的Java代码质量吧:使用valueof前必须进行校验

    一.分析 每个枚举都是java.lang.Enum的子类,都可以访问Enum类提供的方法,比如hashCode.name.valueOf等,其中valueOf方法会把一个String类型的名称转变成枚 ...