java学习之旅(day.03)
整数拓展: 进制
二进制:以0b开头
十进制:我们生活中的正常数 int i=10
八进制:以0开头 int i=010
十六进制:以0x开头 0~9 A~F int i=0x10
浮点数拓展:
float f=0.1f;
double d=10./10;
System.out.println(f==d); //判断f是否等于d false
是有限的、离散的、存在舍入误差(相除除不尽的时候会取一个约等于值)、接近但不等于。
所以最好完全避免使用浮点数比较
字符拓展
char c1='a';
char c2='中';
System.out.println((int)c2);
//所有字符本质还是数字,可强制转换
//转义字符:
\t 制表符 System.out.println(hello\tworld); hello world
\n 换行 System.out.println(hello\nworld); hello world
布尔值拓展
blllean flag=true;
if (flag==true){} //新手
if(flag){} //老手 这两行代码是完全相同的
补充:进制转换
十进制转换为二进制:求商取余法:即十进制数除以2,取余数,直到商为0时,余数由下往上写即为对应的二进制数
二进制转换为十进制:二进制数按圈展开即为十进制数
如110=1* 2E2+ 1* 2E1+ 0*2E0
八进制数转二进制数
八进制数先除以2取余数法,得到二进制数,对每个八进制为三个二进制,不足时左边补0
二进制转八进制:返过去
其他进制转换原理类似 进制转换
类型转换
低=================================高
byte ,short, char —int—long—float—double
小数的优先级大于整数
运算中,不同类型的数据先转化为同一类型,然后进行运算
强制类型转换(由高到低) (类型)变量名
int i=128;
byte b=(byte)i ; //要考虑内存溢出
自动类型转换(由低到高) double b1=i;
注意事项:
不能对布尔值进行转换
不能把对象类型转换为不相干的转换
在把高容量转换为低容量的时候,采用强制转转;反之,直接转换。
转换的时候要考虑到内存溢出或精度问题(如浮点数转到整数:2.36—2,会自动取整(int)23.7=23)。
//操作比较大的数的时候,要考虑溢出
//JDK7新特性:数字之间可以用下划线进行分割,不影响数字
int money =10_0000_0000;
int years =20;
int total =money*years;
System.out.println(total); //-1474836480 计算时溢出
//若改为long接收:
long total1 =money*years;
System.out.println(total1); //-1474836480 依旧溢出,计算时默认money和years是整型,计算完成时再转long,(计算结果是整型,在转long时已经溢出了)
//可以改为:
long total2=money*((long)years);
变量
变量:可以变化的量
java是一种强类型语言,每个变量都必须声明其类型
java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
type varname [=value];
//数据类型 变量名 =值;
type varname [=value];
//数据类型 变量名 =值;
可以使用逗号隔开来声明多个类型变量,但不建议这样用。
如:
int a=1,b=2,c=3;//一般不这样写
int a=1;
int b=2;
int c=3; //而应写成这样
注意:
- 每个变量都有类型,可以是基本类型,也可以是引用类型。
- 变量名必须是合法的标识符。
- 变量声明是一条完整的语句,因此每一个声明都必须以分号结束
变量作用域
类变量:写在类里面的
实例变量:写在方法外,类之内
局部变量:写在方法里面的
public class Variable{
static int allclicks=0; //类变量,有static这个关键词
String str="hello world"; //实例变量,无关键词
publi void method(){
int i=0; //局部变量
}
}
public class demo08 {
//类变量 static
static double salary=2500;
//实例变量:从属于对象(类),可以不初始化就能用,如果不初始化,这个类型默认值:0,0.0
//布尔值:默认是false
//除了基本类型,其余的默认值都是null
String name;
int age;
//main方法
public static void main(String[] args) {
//局部变量是在方法内,用之前必须声明和初始化值
//局部变量只在所在的这个括号内有用,括号外无用
int i=10;
System.out.println(i);
//变量类型 变量名 变量值
demo08 demo08=new demo08();
System.out.println(demo08.age);
System.out.println(demo08.name);
//类变量 加一个关键词static
System.out.println(salary);
}
//其他方法
public void add (){
}
}
常量
常量初始化后不能再改变值,不会变动的值。
所谓常量可以理解为一种特殊的变量,其值被设定后,在程序运行过程中不允许被改变
final 常量名=值
final double PI=3014
常量名一般使用大写字符
public class demo09 {
static final double PI=3.14;
//也可以写为 final static double PI=3.14;
//修饰符不存在先后顺序
public static void main(String[] args) {
System.out.println(PI);
}
}
变量的命名规范:
- 所有变量、方法、类名要见名知意
- 类成员变量:首字母小写和驼峰原则:如monthSalary 除了第一个单词以外,后面单词首字母要大写lastName
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线,全部使用大写字母,如果单词过长,加下划线定义。如:MAX_VALUE
- 类名:首字母大写和驼峰原则Man,GoodMan
- 方法名:首字母小写和驼峰原则:run(), runRun()
java学习之旅(day.03)的更多相关文章
- Java学习之旅开篇:运行机制及环境搭建
在写这篇博客之前,我想对自己进行简单概括:我从事软件开发工作已经三年多了,并且一直在从事.NET相关项目的开发.为什么突然间想学习Java呢?有以下几个原因: 1. 开发程序三年多来,已经对.NET相 ...
- Java学习之旅基础知识篇:面向对象之封装、继承及多态
Java是一种面向对象设计的高级语言,支持继承.封装和多态三大基本特征,首先我们从面向对象两大概念:类和对象(也称为实例)谈起.来看看最基本的类定义语法: /*命名规则: *类名(首字母大写,多个单词 ...
- 第一篇,java学习之旅
在java的这座殿堂中,我才刚刚推开了大门,就像是在岔路口找到了一条,走向前进java大门的路. 下面是一些java算法的问题 第一题: package project.model; import j ...
- Java学习之旅(一):探索extends
鄙人为兴趣爱好,0基础入门学习Java,有些心得想法,记录于此,与君分享. 然毕竟新手,学识尚浅,错误之处,希望多多指正批评,也是对我最大的帮助! 前言:本篇文章,主要讨论在子类继承父类之后,一些继承 ...
- Java学习之旅基础知识篇:数组及引用类型内存分配
在上一篇中,我们已经了解了数组,它是一种引用类型,本篇将详细介绍数组的内存分配等知识点.数组用来存储同一种数据类型的数据,一旦初始化完成,即所占的空间就已固定下来,即使某个元素被清空,但其所在空间仍然 ...
- Java学习之旅基础知识篇:数据类型及流程控制
经过开篇对Java运行机制及相关环境搭建,本篇主要讨论Java程序开发的基础知识点,我简单的梳理一下.在讲解数据类型之前,我顺便提及一下Java注释:单行注释.多行注释以及文档注释,这里重点强调文档注 ...
- 我的java学习之旅--一些基础
(因为我粗略学过C,C++,Python,了解过他们的一些语法,所以为了使得java的入门更为顺畅,便会忽略一些和C语法相类似的地方,着重点明一些java自己的特色之处.也减轻一下自己写文字的负担.) ...
- Java学习之旅(二):生病的狗1(逻辑推导)
前言:本篇文章属于个人笔记,例化了一些代码,不知是否合理,请指教. 中午看到一位同学的面试题,觉得很烧脑,烧脑不能一个人烧,要大家一起烧. 村子中有50个人,每人有一条狗.在这50条狗中有病狗(这种病 ...
- java学习之旅
jar文件其实就是一个压缩包,里面包含很多class文件(一个class文件是一个类的字节码).方便在网络上传输.可以规定版本号,更容易进行版本控制. var只能在方法内使用,不能用于定义成员变量. ...
- 面向对象编程(OOP)的五大特征-java学习之旅(1)
这是Alan Kay关于第一个成功的面向对象语言SmallTalk的总结: 1.所有的东西都是对象.可将对象想象成一种新型的变量:它保存着数据,但是可要求它对自身进行操作,理论上讲,可从要解决的问题身 ...
随机推荐
- #状压dp#C 计划带师
分析 状压dp显然,主要是字典序的问题, 考虑初态终态转换就可以保证字典序最小了 代码 #include <cstdio> #include <cctype> #include ...
- 学会在 C++ 中使用变量:从定义到实践
C++ 变量 变量是用于存储数据值的容器. 在 C++ 中,有不同类型的变量(使用不同的关键字定义),例如: int - 存储整数(没有小数点),例如 123 或 -123 double - 存储浮点 ...
- Makefile 基础教程:从零开始学习
在软件开发过程中,Makefile是一个非常重要的工具,它可以帮助我们自动构建程序,管理程序依赖关系,提高开发效率.本篇博客将从基础开始,介绍Makefile的相关知识,帮助大家快速掌握Makefil ...
- 5. Determinant
5.1 The Properties of Determinants The determinant of the n by n identity matrix is 1 : \(det I = 1\ ...
- RabbitMQ 09 主题模式
主题模式 主题模式结构图: 主题模式实际上就是一种模糊匹配的模式,可以将routingKey以模糊匹配的方式去进行转发. 可以使用*或#来表示: *:任意的一个单词. #:0个或多个单词. 定义配置类 ...
- Docker 13 网络
Linux 网络 查看本地网络信息: [root@sail ~]# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueu ...
- 国密 SM2 的非对称加密解密过程
国密 SM2 的非对称加密解密过程 椭圆曲线 椭圆曲线是由一组方程描述的点的集合: y2 = x3 + ax + b 其中 a, b 满足 (4a3 + 27b2 ≠ 0) SM2 定义了一个 sm2 ...
- eclipse 卡顿的优化办法
1. 关闭校验 2. 关闭插件自动升级 3.关闭界面设置的一些选项
- K8s场景下Logtail组件可观测方案升级-Logtail事件监控发布
简介: SLS针对Logtail本身以及Logtail的管控组件alibaba-log-controller,采用K8s事件的方式,将处理流程中的关键事件透出,从而让用户能够更清楚的感知其中发生的异常 ...
- Maxcompute造数据-方法详解
简介: 造一点模拟数据的方法 概述 造数据在一些奇怪的场合会被用到.一般我们是先有数据才有基于数据的应用场合,但是反过来如果应用拿到另外一个场景,没有数据功能是没有方法演示的.一般较为真实的数据,脱敏 ...