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.所有的东西都是对象.可将对象想象成一种新型的变量:它保存着数据,但是可要求它对自身进行操作,理论上讲,可从要解决的问题身 ...
随机推荐
- dev DEV控件:gridControl常用属性设置
引用:https://www.cnblogs.com/kingsliu/articles/6145679.html 1.隐藏最上面的GroupPanelgridView1.OptionsView.Sh ...
- HarmonyOS位置服务开发指南
位置服务开发概述 移动终端设备已经深入人们日常生活的方方面面,如查看所在城市的天气.新闻轶事.出行打车.旅行导航.运动记录.这些习以为常的活动,都离不开定位用户终端设备的位置. 当用户处于这些丰富 ...
- Windows XP Vmware 无法自适应窗口
之前在吾爱破解上找到一个 WindowsXP SP3 的精简系统(目前找不到在哪了),自带 VMtools 和 52 破解工具包,很适合 XP 系统下的逆向和病毒分析.目前准备学习一下<恶意代码 ...
- pycharm更换主题,pycharm更换皮肤,pycharm更换不同颜色
1.首先 点击File→进入setting 2. 在settings里面找到appearance 3.选择 Theme,下拉即可修改 4.选择不同的主题,darcula是黑色,其他两个是白色
- Java面试题:为什么HashMap不建议使用对象作为Key?
HashMap 是一种基于哈希表的动态数据结构,它允许使用任意不可变对象作为键(key)来存储和检索数据.然而,在某些情况下,使用对象作为 HashMap 的键可能会遇到一些问题. 首先,我们需要明确 ...
- 云原生消息队列Pulsar浅析
简介: 云原生消息队列Pulsar浅析 一.前言 Pulsar是一个多租户,高性能的服务间消息解决方案.最初由Yahoo开发,现在由Apache Software Foundation负责.Pulsa ...
- 智能logo免费体验|网站Logo这样设计搜索排名跟着提升
简介:一个好的网站logo,不仅让用户一眼知道网站品牌传递的信息,还能提高网站专业度和丰富度,增加SEO搜索排名.今天分享下如何设计一款实用的网站logo.阿里云智能logo设计,在线免费体验log ...
- 万物有灵,萌物Luka机器人如何让故事点缀童年
简介:未来的十年将会是AI影响教育的十年.物灵科技正是基于在AI+教育未来趋势前瞻性的把握,不断将人格化属性和关系式交互体验赋予更多人工智能产品,启发儿童语言培养阶段的学习兴趣.依托阿里云技术,物灵 ...
- Serverless 极致弹性解构在线游戏行业痛点
简介: 本文将通过剖析一个个具体的场景案例,以期望给相关的游戏开发同学带来共鸣,同时也希望能给非游戏行业的同学带来一些启发. 一.前言 1. 游戏客户上云关注点 游戏行业是一个富有创意又竞争激烈的市场 ...
- 【详谈 Delta Lake 】系列技术专题 之 Streaming(流式计算)
简介: 本文翻译自大数据技术公司 Databricks 针对数据湖 Delta Lake 的系列技术文章.众所周知,Databricks 主导着开源大数据社区 Apache Spark.Delta ...