教学日志:javaSE-java中的数据类型和运算符
一、java中的标识符
/*
标识符的命名规范:
硬性要求:
1、必须以字母、_下划线、美元符$开头
2、其它部分可以是字母、下划线“_”、美元符“$”和数字的任意组合
3、大小写敏感,长度无限制
4、不可以是Java的关键字和保留字,这些是供内部使用的
常规建议:
1、驼峰命名
类名、接口名一般首字母都是大写,从第二个单词开始首字母都要大写
变量名、方法名一般第一个单词小写,从第二个单词开始首字母大写
2、见名知义
看见名字就知道是什么意思
一定不要用拼音或者中文起名字
*/
public class IdentifierDemo{
public static void main(String[] args){
//int a = 10;
//int $b = 20;
//int a+b = 30; 错误
//int a1 = 10;
//int 1b = 100;// 错误
//String a = "a";
//String A = "a";
//int public = 20; 错误
//String findById = "abc";
String name = "张三";
int age = 20;
System.out.println(a);
}
}
二、变量和常量
/*
变量和常量
定义
变量:在我们程序运行的过程中,值会发生变化的量成为变量;
常量:在我们程序运行的过程中,值不会发生变化的量成为常量;
语法:定义一个变量和常量的语法
变量: 数据类型 变量名 = 值;
常量: final 数据类型 变量名 = 值;
变量:数据类型 变量名称(标识符) 作用域
1、先声明,后赋值
int a;
a = 10;
2、声明+赋值
int b = 20;
常量:指的就是在程序的运行过程中,有一些是一成不变的值(最终变量),说白了就是只能赋值一次,一般使用
final关键字来修饰常量
注意:
在类内部,方法之外定义的变量我们称之为成员变量(全局变量),会有默认值
在方法内部使用的变量称之为局部变量,在使用之前必须先初始化,不会有默认值
一行可以定义多个变量,但是不建议这样写,最好一行只定义一个变量,增加代码的可读性
变量赋值的时候,那个值称为常量
*/
public class ConstantAndVar{
static int a;//成员变量
public static void main(String[] args){
//int a; //声明
//a = 10;//赋值
//int b = 20;
//b = 100;
//System.out.println(b);
//final int c = 10;
//c = 20;//错误
//System.out.println(c);
System.out.println(a);
//int b;//错误
//System.out.println(b);
//int a=10,b=20; 不规范
int a = 10;
int b = 20;
}
}
三、数据类型,本节重点讲解基本数据类型(4类8种),引用数据类型后面讲解
/*
数据类型
java是一种强类型的语言
强类型语言:在使用变量之前,必须显示的声明其变量的数据类型。 java
弱类型语言:在使用变量之前,不需要显示声明变量的数据类型,会自动根据赋值类型识别 js,python,scala
基本数据类型:4类8种
整数类型:byte short int long 不同的整数类型表示不同的长度
byte:使用1个字节存储,所以数据范围是从-128~127
short:使用2个字节存储,所以数据范围是从-32768~32767
int:使用4个字节存储,所以数据范围是大概是正负21亿
long:使用8个字节存储,所以数据范围,你懂的.......
注意:
1、整型类型默认类型是int
2、如果想定义一个变量为long类型的话,数字后面记得加上大写L,因为小写的l很容易和数字1混淆。
浮点类型:float double 表示方法:小数点 科学计数法
float:使用4个字节存储,小数点后面可以精确到7位小数
double:使用8个字节存储,小数点后面可以精确到float精度的2倍
注意:
1、浮点类型默认是double
2、单精度浮点类型定义的时候记得在小数后面加上f
3、浮点类型并不能精确的表示一个数,它会有精度的丢失
字符类型:char
占用2个字节,使用字符类型的时候,使用''表示
注意:
char类型可以当成int类型来处理,字符对应的是ASCII码表中的值
布尔类型:boolean
占用1位,只有两个值,注意是小写的,true(真)或false(假)
引用数据类型:
类(class)
接口(interface)
数组(array)
*/
public class DataTypeDemo{
public static void main(String[] args){
//byte a = 128; 错误
//short b = 32768; 错误
//int a = 3111111111; 错误
//long a = 3111111111L;
/*float f1 = 3.3452321123123f;
float f2 = 3.345232112312321321f;
System.out.println(f1 == f2);*/
//字符类型
char a = 'B';
System.out.println(a == 66);
//字符串类型,一个字符序列
//String A = "AB";
//System.out.println(A);
char ch1 = '\t';//转义符
System.out.println("[" + ch1 + "]");
char ch2 = '\u0009';//转义符
System.out.println("[" + ch2 + "]");
System.out.println("\"abc\"");
int a1 = 10;
boolean flag = true;
System.out.println((a1 == 10) == flag);
}
}
四、运算符
/*
运算符:
算术运算符: +,-,*,/,%,++,--
赋值运算符 =
一个=是赋值运算符,==是关系运算符
扩展赋值运算符:+=,-=,*=,/=
关系运算符: >,<,>=,<=,==,!=
两边一般都不是具体的值,而是表达式
逻辑运算符: &&,||,!
位运算符: &,|,^,~ , >>,<<,>>> (了解!!!)
条件运算符 ?:
*/
public class OperatorDemo{
public static void main(String[] args){
int a = 1;
int b = 2;
//算术运算符
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
//取整除,或者取商
System.out.println(a/b);
//取余数,或者取模
System.out.println(a%b);
//给一个4位数,对应取出个位、十位、百位、千位数字?
int i = 2345;//?
System.out.println("个位数是:" + (i%10));
//++:单目运算符,自加1操作,如果++在前面,先自加,再运算
// 如果++在后面,先运算,再自加
System.out.println(a++);
System.out.println(++a);
//--:单目运算符,自减1操作,如果--在前面,先自减,再运算
// 如果--在后面,先运算,再自减
//System.out.println(a--);
//System.out.println(--a);
//面试题:运算符的优先级的问题 ++优先级是大于+
System.out.println(++b+b++);//? 6
System.out.println("-------------------");
System.out.println(b);//4
//扩展运算符
int c = 1;
//两种写法的结果是一样的,都是做+2操作
//建议操作的时候都使用扩展运算符
//c = c + 2;
c += 2;
//基本数据类型的转换:byte类型的d,当它+20的时候,等号右边变成了int类型,左边是byte类型,
// 大范围向小范围转型需要强制转换 写法:(datatype)
byte d = 10;
//d = d + 20;
d += 20;
System.out.println(d);
//关系运算符
System.out.println(2>3);
System.out.println(2<3);
System.out.println(2>=3);
System.out.println(2<=3);
System.out.println(2==3);
System.out.println(2!=3);
//逻辑运算符
/*
&&:短路与,当第一个表达式是false,那么后面的表达式就不再执行了
||:短路或,当第一个表达式是true,那么后面的表达式就不再执行了
&:逻辑与,不管第一表达式返回true还是false,两边的表达式都会执行
|:逻辑或,不管第一表达式返回true还是false,两边的表达式都会执行
*/
int aa = 1;
//System.out.println(2 > 3 && 5 > aa++);
System.out.println(2 > 3 & 5 > aa++);
System.out.println(aa);
System.out.println(2 > 3 || 5 > 4);
System.out.println(!false);
System.out.println(!true);
//位运算符
System.out.println(4 & 5);//4
System.out.println(4 | 5);//5
System.out.println(4 ^ 5);//1
//移码 原码 反码 补码
System.out.println(~4);//-5 ??
//位运算符:
/*
>>:有符号右移,除2操作,移动几位就除以几个2
<<:有符号左移,乘2操作,移动几位就乘以几个2
>>>:无符号右移
*/
//把2变成16的最高效的方法是什么?
System.out.println(2 << 3);
System.out.println(16 >> 3);
//条件运算符:三目运算符
// 第一个表达式返回为true,则取?后的值,反之,取:后的值。
System.out.println( 2 < 3 ? 2 : 3);
System.out.println(false ? false : true ? false : true);
/*
基本数据类型之间的转换:
1、一般写代码的时候,都是使用同一种数据类型,低位会向高位自动转换(隐式转换)
2、在同一种数据类型转换的时候,高位向低位不会自动转换,需要使用强制转换
3、强制转换会数据精度的丢失
*/
byte x = 10;
x = (byte)(x + 20);
//int y = x + 20;
System.out.println(x);
System.out.println((byte)270);//14
}
}
五、作业
- 输入自己的名字,年龄和性别,分别用不同的变量接收,并将输入的信息做输出
import java.util.Scanner;
public class TestPerson {
public static void main(String[] args) {
System.out.println("Please input your name here:");
Scanner input = new Scanner(System.in);
String Name = (String) input.next();
System.out.println("Please input your age here:");
int age = input.nextInt();
System.out.println("Please input your gender here:");
String gender = input.next();
System.out.println("The computer recorded that :");
System.out.println("Your nanme is:" + Name);
System.out.println("Your age is:" + age);
System.out.println("Your gender is:" + gender);
}
}
2.输入圆形半径,求圆形的周长和圆形的面积,并将结果输出。
import java.util.Scanner;
public class TestCircle {
public static void main(String[] args) {
// 定义圆周率
final double PI = 3.14;
Scanner input = new Scanner(System.in);
// 输入半径
System.out.println("请输入圆的半径:");
// 计算周长和面积
float r = input.nextFloat();
double c = 2 * PI * r;
double s = PI * r * r;
// 输出周长和面积
System.out.println("该圆的半径为:R=" + r);
System.out.println("该圆的周长为:C=" + 2 + "*" + PI + "*" + r + "=" + c);
System.out.println("该圆的面积为:S=" + PI + "*" + r + "*" + r + "=" + s);
}
}
3.银行利率表如下表所示,请计算存款10000元,活期1年、活期2年,定期1年,定期2年后的本息合计。
结果如下图所示。(结果四舍五入,不保留小数位。使用Math.round(double d)实现)
public class TestDeposit {
public static void main(String[] args) {
//给出本金并输出
int money = 10000;
System.out.println("本金:"+money);
//计算活期1年本金并输出
double result1 = money*(1+0.35/100);
System.out.println("活期1年本金总计:"+Math.round(result1));
//计算定期1年本金并输出
double result2 = money*(1+1.50/100);
System.out.println("定期1年本金总计:"+Math.round(result2));
//计算活期2年本金并输出
double result3 = money*(1+0.35/100*2);
System.out.println("活期2年本金总计:"+Math.round(result3));
//计算定期2年本金并输出
double result4 = money*(1+2.10/100*2);
System.out.println("定期2年本金总计:"+Math.round(result4));
}
}
4.某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。结果如图所示。
public class TestEncryption {
public static void main(String[] args) {
//输入一个4位整数
Scanner s = new Scanner(System.in);
System.out.print("请输入一个4位正整数:");
int num = s.nextInt();
//获取各个位上的数
int bit4 = (num / 1000); // 取千位的数字
int bit3 = (num / 100) % 10; // 取百位的数字
int bit2 = (num / 10) % 10; // 取十位的数字
int bit1 = num % 10; // 取个位的数字
//每位数字加5
bit4 = (bit4+5)%10;
bit3 = (bit3+5)%10;
bit2 = (bit2+5)%10;
bit1 = (bit1+5)%10;
//交换第一位和第四位
int temp;
temp = bit4;
bit4 = bit1;
bit1 = temp;
//交换第二位和第三位
temp = bit2;
bit2 = bit3;
bit3 = temp;
// 输出加密后数字
//System.out.println("加密后的数字为:"+bit4+bit3+bit2+bit1);
int ennum = bit4*1000+bit3*100+bit2*10+bit1;
System.out.println("加密后的数字为:"+ennum);
}
}
5.利用”异或”运算的性质,对几个字符进行加密并输出密文,然后再解密。加密算法是:密钥是字符’8’,明文的每个字符和密钥进行异或运算,得到密文。密钥和密文的每个字符再次进行异或运算,重新得到明文。结果如图所示。
public class TestEncryption2 {
public static void main(String args[]) {
//原文
char a1 = '十', a2 = '点', a3 = '进', a4 = '攻';
System.out.println("加密前原文:" + a1 + a2 + a3 + a4);
//加密
char secret = '8';
a1 = (char) (a1 ^ secret);
a2 = (char) (a2 ^ secret);
a3 = (char) (a3 ^ secret);
a4 = (char) (a4 ^ secret);
System.out.println("密文:" + a1 + a2 + a3 + a4);
//解密
a1 = (char) (a1 ^ secret);
a2 = (char) (a2 ^ secret);
a3 = (char) (a3 ^ secret);
a4 = (char) (a4 ^ secret);
System.out.println("解密后原文:" + a1 + a2 + a3 + a4);
}
}
教学日志:javaSE-java中的数据类型和运算符的更多相关文章
- Java中的变量,数据类型和运算符
变量,数据类型和运算符 1.变量是一个数据存储空间的表示,它是储存数据的基本单元. 如何理解这句话,下面用一个表格可以形象的表达: 变量与房间之间的对应关系 房间名称 变量名 房间类型 变量类型 入住 ...
- Java 第二章 变量、数据类型和运算符
第二章 变量.数据类型和运算符 什么是变量: 变量代表一块内存区域,变量类型不一样,这一块内存的大小也不一样. #在编程语言里面,你可以通过定义变量,向内存里添加数据或者修改内存已有的数据. ...
- 使用 JavaScript 中的变量、数据类型和运算符,计算出两个 number 类型的变量与一个 string 类型的变量的和,根据 string 类型处于运算符的不同位置得到不同的结果
查看本章节 查看作业目录 需求说明: 使用 JavaScript 中的变量.数据类型和运算符,计算出两个 number 类型的变量与一个 string 类型的变量的和,根据 string 类型处于运算 ...
- PostgreSQL自学笔记:5 数据类型和运算符
5 数据类型和运算符 5.1 PostgreSQL 数据类型介绍 5.1.1 整数类型 整型类型 字节 取值范围 smallint 2字节 -2^15 ~ 2^15 int integer 4字节 - ...
- Java1变量数据类型和运算符
day02_变量数据类型和运算符 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 public class jh_01_数据类型说明 { public ...
- Java中的数据类型及相互转换方法
本文主要讲解两个部分: 一.Java中的数据类型有哪些? 二.数字类型和字符串类型相互转换的方法? 一.Java中的数据类型有哪些: Java中的数据类型有:基本数据类型和引用数据类型: 基本数据类型 ...
- IOS开发新手教程(一)-数据类型和运算符
OC语法入门(一) 数据类型和运算符 1.1凝视 凝视和其它语言一样,同意单行 ,多行凝视,一份规范的代码里面须要有一些正式的凝视,例如以下凝视: /* 这是多行 凝视 */ //这是多行凝视 OC语 ...
- Javascript学习2 - Javascript中的表达式和运算符
原文:Javascript学习2 - Javascript中的表达式和运算符 Javascript中的运算符与C/C++中的运算符相似,但有几处不同的地方,相对于C/C++,也增加了几个不同的运算符, ...
- Java中基本数据类型和包装类
参考:深入剖析Java中的装箱和拆箱; Java中基本数据类型和包装类互转中 缓冲机制的使用; java学习笔记:装箱和拆箱,包装器和缓冲池 Java 各 类型数据在内存中分配情况详解 一 java内 ...
随机推荐
- 【系统硬件】英伟达安培卡 vs 老推理卡硬件参数对比
欢迎关注我的公众号 [极智视界],回复001获取Google编程规范 O_o >_< o_O O_o ~_~ o_O 本文分享一下英伟达安培卡 vs 老推理 ...
- 学习java 7.20
学习内容: Stream流 Stream流的生成方式 中间操作方法 终结操作方法 Stream流的收集操作 类加载 类加载器的作用 将.class文件加载到内存中,并为之生成对应的java.lang. ...
- Ecshop 安装
参考 http://www.68ecshop.com/article-617.html ecshop的安装第一步:下载ecshop网店系统正式版安装包 我们可以来ecshop开发中心的官网(www.6 ...
- HTML5 之 FileReader 的使用 (网页上图片拖拽并且预显示可在这里学到) [转载]
转载至 : http://www.360doc.com/content/14/0214/18/1457948_352511416.shtml FileReader 资料(英文) : https://d ...
- deque、queue和stack深度探索(下)
deque如何模拟连续空间?通过源码可以看到这个模型就是通过迭代器来完成. 迭代器通过重载操作符+,-,++,--,*和->来实现deque连续的假象,如上图中的 finish-start ,它 ...
- C++之error: cannot bind non-const lvalue reference of type ‘myString&’ to an rvalue of type ‘myString’
先看代码(不想看代码可以直接看代码后的问题描述) //header.h #ifndef _HEADER_H #define _HEADER_H #define defaultSize 128 #inc ...
- 双向链表——Java实现
双向链表 链表是是一种重要的数据结构,有单链表和双向链表之分:本文我将重点阐述不带头结点的双向链表: 不带头结点的带链表 我将对双链表的增加和删除元素操作进行如下解析 1.增加元素(采用尾插法) (1 ...
- Spring Batch : 在不同steps间传递数据
参考文档: How can we share data between the different steps of a Job in Spring Batch? Job Scoped Beans i ...
- HUD总结
HUD 指示器/HUD/遮盖/蒙板 半透明的指示器如何实现 指示器的alpha = 1.0; 指示器的背景色是半透明的 1. 创建颜色 直接创建对应的颜色 + (UIColor *)blackColo ...
- 【Linux】【Services】【Configuration】puppet
1. 简介 1.1. 官方网站:https://docs.puppet.com/ 1.2. puppet是IT基础设施自动化管理工具,他的整个生命周期包括:provisioning,configura ...