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,vector#AT2567 [ARC074C] RGB Sequence
题目 分析 一种很正常的想法就是设\(dp[i][j][k]\), 表示前\(i\)个格子,其它两种颜色出现的位置分别为\(j,k,j>k或j=k=0(可取两种颜色)\)的方案数 那么颜色种类限 ...
- SQL 算术运算符:加法、减法、乘法、除法和取模的用法
SQL Server中的存储过程 什么是存储过程? 存储过程是一段预先编写好的 SQL 代码,可以保存在数据库中以供反复使用.它允许将一系列 SQL 语句组合成一个逻辑单元,并为其分配一个名称,以便在 ...
- 《苏丹的复仇》携手华为HMS生态,实现用户、收入双增长
中国出海中东和北非地区的策略类手游<苏丹的复仇>(Revenge of Sultans,ROS)和华为HMS生态深度合作,为本地用户带来创新游戏体验,成为当地广受欢迎的游戏之一,下载量居应 ...
- 财务人提高竞争力必备的技能,怎么能少了ta!
从近年来大数据技术的发展趋势和相关产业飞速发展的状态,可以看出当前"数据分析"的热度可以说是有增无减,而且从市场上对数据分析人才的需求缺口也可以看出企业对数据分析的重视程度.未来随 ...
- 可视化库 pygal 生成png中文乱码
解决方法:设置style,style中设置中文字体 代码如下: import pygal from pygal.style import Style import cairosvg style = S ...
- SpringBoot集成日志
1.日志工厂 如果一个数据库,出现了异常,我们需要排错,日志就是最好的助手! 曾经:sout.debug 现在:日志工厂 在Mybatis中具体使用那一个日志实现,在设置设定 STDOUT_LOGGI ...
- Linux(CentOS7.2)安装cnpm
1.安装cnpm npm install -g cnpm --registry=https://registry.npm.taobao.org 2.如下安装成功 /root/node-v10.16.3 ...
- js 是单线程吗?
前言 在html5中,js中允许操作多个线程执行,但是不能操作dom元素,这是一个痛点. 但是在mvvm依然存在很大的作用力,因为我们只需要操作数据,在操作数据的时候委托机制在主线程中就实现了对dom ...
- nohup训练pytorch模型时的报错以及tmux的简单使用
问题: 在使用nohup命令后台训练pytorch模型时,关闭ssh窗口,有时会遇到下面报错: WARNING:torch.distributed.elastic.agent.server.api:R ...
- 密码学中的RSA算法与椭圆曲线算法
PrimiHub一款由密码学专家团队打造的开源隐私计算平台,专注于分享数据安全.密码学.联邦学习.同态加密等隐私计算领域的技术和内容. 在数字安全领域,加密算法扮演着至关重要的角色.它们确保了信息的机 ...