java中的数据类型:
基本数据类型
布尔类型:boolean
字符类型:char
整数类型:byte short int long
浮点类型:float double

引用数据类型String Student Teacher.....class Student{}Student stu = new Student();

java中的运算符:

+ - * / %
[+:当+遇到String类型时候 表示追加连接 其他的情况-》算数加法]'a' + 13 + 'b' = 110 + 98 = 208'a' + 13 + "b" = 110b[/:整数 / 整数 = 整数]9 / 2 = 4
[%:求余数]x % 5 == 0+= -= *= /= %=.....
[他们可以保证运算符的左边的数据类型不发生改变 -》 隐式的强转]Student stu = new Student();stu.name = "小丽";stu.age = 22;stu.score = 59;if(stu.age > 18){stu.score += 5;}++ --[自增自减运算符]
[a:取值   b:运算        x++:ab        ++x:ba]int x = 45;//y赋值://x++:先取值:45 运算:x=46//++x:先运算:x=47 //取值:47int y = x++[45] + ++x[47];//92System.out.println(x);//47System.out.println(y);//92> < >= <= ! = != ==> < >= <=:都是boolean类型!:非       !boolean    !true = false  !false = true!=:判断左右两边的值是否不相等System.out.println(xxx.gender != '男');==:判断左右两边的是是否相等System.out.println(xxx.age == 18);=:赋值语句&& || & |[逻辑运算符]&&和&之间的区别?&&和&都是逻辑的与 相当于汉文中并且的意思需要前后两个条件都成立才能执行&&叫做逻辑的短路与 有短路特性

1:short类型和char类型之间永远需要强转
short属于整数类型 底层16个位,取值范围:-2(15)到2(15)-1
char属于字符类型 底层基于Unicode编码实现的 ,取值范围:0到2(16)-1

2:字符类型的赋值方式:

public class TestDataType2{public static void main(String[] args){//数据单位 变量名 = 值;char x1 = 'a';//指定字面值的赋值方式char x2 = '中';//指定字面值的赋值方式//=====================================================char x3 = 97;//通过ascii编码进行赋值char x4 = '\u4e2d';//通过Unicode编码进行赋值char x5 = '\t';//转义字符/**\t        \r      \b      \n制表符   返回行首 退格键 换行*/System.out.println(x1);//aSystem.out.println(x2);//中System.out.println(x3);//97System.out.println(x4);System.out.println("e\tt\no\ra\bk");//e    t//kSystem.out.println("小明\t455");System.out.println("赵小刚\t666");//打印:D:\课件\et2003\day3System.out.println("D:\\\\课件\\et2003\\day3");}
}

3:整数类型的赋值方式

public class TestDataType3{public static void main(String[] args){int num1 = 24;//通过十进制进行赋值 ******//============================================================int num2 = 024;//通过八进制进行赋值int num3 = 0x24;//通过十六进制进行赋值int num4 = 0b1011;//通过二进制进行赋值System.out.println(num1);//24System.out.println(num2);//024 = 2 * 8(1) + 4 * 8(0) = 16 + 4 = 20System.out.println(num3);//0x24 = 2 * 16(1) + 4 * 16(0) = 322 + 4 = 36System.out.println(num4);////81 + 8 * 8(1) + 1 * 8(0) + 8 * 16(1) + 1 * 16(0) = XXXX//System.out.println(81 + 081 + 0x81);//二进制 -》 0-1//八进制 -》 0-7//十六进制 -》 0-9 a-f//jdk7.0开始数值中间可以加_ -》 读System.out.println(4_356_548_845L);//byte x = 55;//System.out.println(x);//System.out.println(55);//int//System.out.println(30 + 3L);//求一年的毫秒数//System.out.println(365L * 24 * 60 * 60 * 1000);//System.out.println(2147483647 + 1);}
}

4:float类型 double类型 科学计数法

public class TestDataType4{public static void main(String[] args){float x = 45.5F; //float类型需要加F,还有long类型double y = 45.5;//4.5E9 -> E:科学计数法  4.5 * 10(9)System.out.println(4500000000.0); //4.5E9System.out.println(x);//45.5}
}

5:BigDecimal大数值计算

import java.math.*;
public class TestDataType5{public static void main(String[] args){//System.out.println(2.0 - 1.1);BigDecimal b1 = new BigDecimal("2.0");BigDecimal b2 = new BigDecimal("1.1");BigDecimal b3 = b1.subtract(b2);System.out.println(b3);System.out.println(2.0-1.1); //0.89999999...../**1: 2.0 - 1.1结果是多少?反正不是0.92: 为什么会出现这样的结果?在java中任何一个整数类型都可以用二进制精确的表示出来但是不代表任何一个小数也可以在有限的位数里面显示出来1.1在存储的时候 出现了数值位的截取 导致数值不正确3:怎么解决?单位缩小10倍 数值扩大10倍BigDecimal:大数值*/}
}
import java.math.*;
public class TestPlus4{public static void main(String[] args){//double num = 1.0;BigDecimal b1 = new BigDecimal("1.0");for(int x = 1;x <= 10;x++){//num = 1.3//num = num + 0.1;BigDecimal b2 = new BigDecimal("0.1");b1 = b1.add(b2);System.out.println(b1);//1.1  1.2  1.3}}
}

6:小转大,大转小的问题

public class TestDataType6{public static void main(String[] args){//int -> double 小转大直接转int num = 45;double x = num;//double = int//double -> int   大转小需要强转double x = 45.8;int y = (int)x;System.out.println(x);System.out.println(y);long x1 = 45;//long = int   45 -> int -> long -> xfloat y1 = 45.5;//float[32] = double[64]System.out.println(x1);System.out.println(y1);}
}
public class TestDataType7{public static void main(String[] args){//byte char【小】 short【大】//char x = 'a';//short y = (short)x;//short【小】  char【大】short x = 97;char y = (char)x;System.out.println(y);}
}

7:根据数据类型,会调用哪个方法

public class TestDataType8{public static void main(String[] atgs){//(char)   【int】   long    float   【double】//【char】  (int)  long  float  【double】test(88);//test(char)}//修饰符 + 返回类型 + 方法名(参数){}public static void test(char x){System.out.println("传char类型参数的方法");}
/*public static void test(double x){System.out.println("传double参数的方法");}public static void test(double x){System.out.println("传double类型参数得方法");}public static void test(int x){System.out.println("传int类型参数的方法");}*/
}

小测1:求1-100之间最大的8的倍数

public class Exec5{public static void main(String[] args){//利用学过的运算符求1-100之间最大的8的倍数 -> 96//+ - * / %System.out.println(100 / 8 * 8);System.out.println(100 % 8);}
}

小测2:分别得到个位数 十位数 百位数

public class Exec6{public static void main(String[] args){int num = 149;//分别得到个位数 十位数 百位数int bai  = num / 100;//728 / 100 = 7//728 -> 72 -> 2int shi1 = num / 10 % 10;//728 / 10 = 72 % 10 =//728 -> 28 -> 2int shi2 = num % 100 / 10;//728 % 100 = 28 / 10 = 2int ge = num % 10;//728 % 10 = 8System.out.println("百位数" + bai);System.out.println("十位数" + shi1);System.out.println("个位数" + ge);}
}

小测3:对于int类型的数值,char类型的值

public class TestPlus2{public static void main(String[] args){//char[16] = int[32]//当我们拿着一个数字给char类型赋值的时候 这个数字可能是int类型可能是ascii编码//如果这个数字在char类型的取值范围里面[0-65535] 数字理解成ascii编码char x = 97;//97:ascii//如果这个数字不在char类型的取值范围里面 数字理解成int类型 -》 可能会报错//char y = -97;//-97:intint z = -97;char t = (char)z;System.out.println("x: " + x + ",z: " + z + ",t: " + t);//a  -97  ?}
}

小测4:double类型的减法 float类型的减法

public class TestPlus3{public static void main(String[] args){double x = 2.0;double y = 1.1;System.out.println(x - y);//0.8999999999//0.8999999999999999999999999999float a = 2.0F;float b = 1.1F;System.out.println(a - b);//0.9}
}

小测5:闰年平年的算法

闰年计算方式:
1:一般能被4整除的年份都是闰年 不能就是平年
2:像是1900 2100这种末尾有2个0的一般都是平年
3:像400 800 1200 2000这种能被400整除的也是闰年

public class Exec5{public static void main(String[] args){判断(1900);//平年判断(2020);//闰年判断(2100);//平年判断(2004);//闰年判断(1984);//闰年}//定义一个方法 判断一个年份是不是闰年public static void 判断(int year){//闰年的条件:只要是400的倍数都是闰年//            是4的倍数但是不是100的倍数[末尾没有两个零]if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0){System.out.println("闰年");}else{System.out.println("平年");}}
}

加法遇到 " " 和 ’ '的算法:

System.out.println(1 + 1);//算数加法 : 2System.out.println(1 + "1");//追加连接: 11System.out.println(1 + 1 + "1");//21System.out.println(1 + "1" + 1);//"11" + 1 = 111// int + char//1 + 49 = 50 + "1"System.out.println(1 + '1' + "1");//501System.out.println(1 + "1" + '1');//"11" + '1' = 111

数值运算可能出现的问题:

System.out.println(5 / 2);//2        5 / 2 * 2 = 4System.out.println(5 / 2.0);//5.0 / 2.0 = 2.5//===================================================System.out.println(5 / 0.0);//Infinity => 无穷大System.out.println(0.0 / 0.0);//NaN = not a number
//打印1-10
for(int x = 1;x <= 10;x++){System.out.println(x);
}

1:使用两种不同的方式交换两个变量的值 【重点:^】

public class Exec2{public static void main(String[] args){char x = 'O';char y = 'K';//第三块空间char z = x;//z = 'O'x = y;//x = 'K'y = z;System.out.println(x + "    " + y);//^//所有运算符的做小的处理单位是intx = (char)(x ^ y);//char16 = int32y = (char)(x ^ y);x = (char)(x ^ y);System.out.println(x + " " + y);}
}

2:使用两种不同的方式交换两个变量的值 【重点:^】

public class TestOperation2{public static void main(String[] args){int x = 45;int y = 66;//不允许创建第三块空间的方式交换两个变量的值:x = x ^ y;y = x ^ y;x = x ^ y;/**int x = 45;45 = 32 + 8 + 4 + 1 = 00000...0101101int y = 66;66 = 64 + 2 =         00000...1000010x = x ^ y;00000...010110100000...1000010 ^00000...1101111 : 111 -> xy = x ^ y;00000...110111100000...1000010 ^00000...0101101 : 32 + 8 + 4 + 1 = 45 = yx = x ^ y;00000...110111100000...0101101 ^00000...1000010 : 64 + 2 = 66 = x*/System.out.println(x + " " + y);//交换两个变量的值int z = x;//z = 45x = y;//x = 66y = z;//y = 45;System.out.println(x + "  " + y);}
}

2:
(乘法)

(除法)/
(模运算)
%
*

//一个文件1024K 已经下载512K 问下载了百分之多少
System.out.println(512 * 100 / 1024 + "%");
System.out.println(5 / 2);//取整数:2
System.out.println(5 % 2);//取余数:1
System.out.println(5 % -2);//1
System.out.println(-5 % 2);//-1
System.out.println(-5 % -2);//-1
public class TestOperation3{public static void main(String[] args){//byte:-128  127byte x = 10;byte y = 10;//  byte = 20->int//byte z = x + y;//所有的运算符最小的处理单位是intbyte t = 20;System.out.println(t);//20//System.out.println(z);//20System.out.println(100 >> 3 << 3);System.out.println((2 << 30) - 1);}
}

小测

public class TestOperation4{public static void main(String[] args){System.out.println(45 > 55 ? 45 : 55);//三目运算符的第二三部分类型要求一样//                             45.5:55.0System.out.println(45 > 55 ? 45.5 : 55);//                         char : ascii编码//                             'a'   'b'System.out.println(45 > 55 ? 'a' : 98);//                             char  int//                             97  : -98System.out.println(45 > 55 ? 'a' : -98);//char x = -97;//数字 -》 int/ascii        【0-65535】check(52);getValue(-7);}//判断一个数字是不是偶数 如果是 打印偶数XXX 如果不是 打印奇数XXXpublic static void check(int num){/*if(num % 2 == 0){System.out.println("偶数" + num);}else{System.out.println("奇数" + num);}*/System.out.println( num % 2 == 0 ? "偶数" + num : "奇数" + num);}//定义一个方法 用来得到一个数字的绝对值public static void getValue(int x){/*if(x >= 0){//正数System.out.println(x);}else{//负数System.out.println(-x);}*/System.out.println( x >= 0 ? x : -x);}
}

Java中的数值计算相关推荐

  1. java中,数值计算时的类型转换 ( 两个int类型相加,赋值给double )

    定义代码如下 int a = Integer.MAX_VALUE; int b = 1; double c = 0; c = a + b; 以上这段代码,虽然不会报错,但是计算结果精度有问题. 现象: ...

  2. java中集合的模型特点_Java 学习笔记(十四)集合

    集合 在开发的时候,如果需要存储多个数据,可以使用数组,不过数据是固定长度的,如果需要存储可变长度的多个数据,可以使用集合.集合提供存储空间可变的存储类型,存储的容量可以实时改变 集合分类 Colle ...

  3. java中的浮点计算

    记得很久以前编写测试用例,无意间发现 double c=2.31; double d=0.1; System.out.println(c/d); 最后输出的竟然是23.099999999999998, ...

  4. 在JAVA中 以下程序_在Java中,以下程序的输出结果是()_学小易找答案

    [单选题]运行以下Java代码,说法正确的是( ). [单选题]在Java中,以下程序的输出结果是() [单选题]利用"出声"的方式向学生展示教师分析问题的过程与方法的教学方法是_ ...

  5. Java中BigDecimal类常用方法,舍入策略

    标题 Java BigDecimal 的舍入模式 (RoundingMode)详解 提一下银行家算法 BigDecimal和BigInteger Java中BigDecimal常用方法 BigDeci ...

  6. Java解方程zu q_关于数学:Java中的微分方程

    我正在尝试在Java中创建一个简单的SIR流行病模型仿真程序. 基本上,SIR由三个微分方程组定义: S'(t)=-l(t)* S(t) I'(t)= l(t)* S(t)-g(t)* I(t) R' ...

  7. java中没有直接调用matlab的接口函数

    java中没有直接调用matlab的接口函数,在通常的情况下我们是通过借用C++作为中间过程来实现的,使用C++主要是用c与matlab的结构实现c调用matlab的功能,将这些功能函数封装成dll文 ...

  8. java中byte数组与int类型的转换(两种方式)

    java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形 ...

  9. java中实现具有传递性吗_Java中volatile关键字详解,jvm内存模型,原子性、可见性、有序性...

    一.Java内存模型 想要理解volatile为什么能确保可见性,就要先理解Java中的内存模型是什么样的. Java内存模型规定了所有的变量都存储在主内存中.每条线程中还有自己的工作内存,线程的工作 ...

最新文章

  1. 一根棉签解决身上各种酸痛,立马感觉无比舒畅!
  2. 关于System Volume Information占用的大量磁盘空间
  3. 空军哥军姐新装——帅
  4. 【HDU - 6567】Cotree(树形dp,思维)
  5. linux-路径的切换-文件的增删拷-目录的增删拷
  6. Python+tkinter+sqlite3模拟通信录管理系统
  7. Ansible之roles使用
  8. THUWC2019游记
  9. Flexigrid For Asp.Net-MVC
  10. 计算机操作系统--UNIX操作系统
  11. 仿京东商城源码java_Java+SSM实现类似京东的3C电子商城系统
  12. php手机网页在线录音ios,HTML5网页录音和上传到服务器,支持PC、Android,支持IOS微信...
  13. 输入一个字符,判断该字符是大写英文字符,小写英文字符,空格,还是其他字符
  14. word文档打钩记录快捷键
  15. python实现数模转换_树莓派:PCF8591数模转换模块的使用
  16. 什么是PON光模块?PON光模块有哪些作用和类型?
  17. 567个!最常用的英语动词短语搭配汇总大全!
  18. 如何将pip更新到最新版本
  19. 木木机器人tf卡_Microsoft 微软 L5V-00022 Sculpt Ergonomic 人体工程学无线键鼠套装
  20. HTML5和CSS3 介绍开发实战需要的(二)

热门文章

  1. Springboot2整合kafka的两种使用方式
  2. socket聊天室实现-群聊,私聊,好友列表,完整版
  3. 【Android显示系统初探】surface初相识
  4. 注册免费的外贸B2B平台有什么作用
  5. python爬虫项目之携程网、大众点评和马蜂窝贵州景点差评实战汇总
  6. 远景在线(www.pcbeta.com):使用IE10登陆中国银行网银蓝屏或者死机的解决方案
  7. 远景会员定制GHOST WIN7 2010珍藏版
  8. 51 nod 1010
  9. 大狼痛心疾首的碎碎念
  10. php5.2 nts 下载,php_xdebug-2.1.0-5.2-vc6-nts.dll