CoreJava Reading Note(3:Fundamental structure)
1.CamelCase
类名是以大写字母开头的词,如果名字由多个单词组成,每个单词的地一个字母都应该大写。
例如:FirstExample,ObjectDemo.....
2.数据类型
a.整型:
int:4字节
short:2字节
long:8字节
byte:1字节
注:长整型数值有一个后缀L或l(如4000000000L)。十六进制数值有一个前缀0x或0X(如0xCAFE)。八进制有一个前缀0(如010)。
Java7开始,加上0b或0B就可以写二进制数。例如,0b1001就是9。
b.浮点型:
float:4字节
double:8字节
注:1.float类型的数值有一个后缀F或f(例如,3.14F)。没有F后缀的浮点数值默认为double型。
2.浮点数值不适用于无法接受摄入误差的金融计算中。例如:
System.out.println(2.0-1.1);//0.89999999999,not 0.9
这种舍入误差的主要原因是浮点数值采用二进制系统表示,而在二进制系统中无法精确地表示分数1/10。这就好像十进制无法精确表示分数1/3一样。
c.boolean类型:
整型值与布尔值之间不能进行相互转换。
3.运算符
整数被0除将会产生一个异常,而浮点数被0除将会得到无穷大(Infinity)或NaN结果。
4.Math类
平方根:Math.sqrt(Type x)
幂运算:Math.pow(Double x,Double y) -------表示x的y次幂
三角函数:Math.sin,Math.cos,Math.tan,Math.atan,Math.atan2
指数与对数:Math.exp,Math.log,Math.log10
常量:Math.PI,Math.E
注:在使用%求余运算中,n%2,如果n为负数,则结果得-1。而Math.floorMod方法可以总是得到需要的余数而非-1。
5.数值之间的转换
无信息丢失的转换:byte-->short,short-->int,char-->int,int-->long,int-->double,float-->double。
可能有精度损失的转换:int-->float,long-->float,long-->double。
小结:只有向上转型是可行的,无危险的。
6.String类
API:
int compareTo(String other)
按照字典顺序,如果字符串位于other之前,返回一个负数;如果字符串位于other后,返回一个正数;如果两个字符串相等,返回0。
boolean equals(Object other)
如果字符串与other相等,返回true。
boolean startsWith(String prefix)
boolean endsWith(String suffix)
如果字符串以suffix开头或结尾,则返回true。
int indexOf(String str)
int indexOf(String str,int fromIndex)
返回与字符串str匹配的第一个子串开始位置。这个位置从索引0或fromIndex开始结算。如果在原始串中不存在str,返回-1。
int length()
返回字符串的长度
String substring(int beginInex)
String substring(int beginIndex,int endIndex)
返回一个新字符串,这个字符串包含原始字符串中从beginIndex到串尾或endIndex-1的所有代码单元。
String toLowerCase()
String toUpperCase()
返回一个新字符串。这个字符串包含原始字符串中的大写字母改为小写(或反之)
String trim()
返回一个新字符串,这个字符串将删除了原始字符串头部和尾部的空格
String join(CharSequence delimiter,CharSequence... elements)
System.out.println(String.join("/","S","M","L"));//print S/M/L
7.StringBuilder,StringBuffer
有些时候,需要由较短的字符串构建字符串,例如,按键或来自文件中的单词。采用字符连接的方式达到此目的的效率比较低。每次连接字符串都会构建一个新的String对象,既耗时又耗空间。使用StringBuilder类就能避免此问题
StringBuilder builder=new StringBuilder(); builder.append(ch); //appends a single character builder.append(str); //appends a string //在需要构建字符串时调用toString方法 String completedString=builder.toString();
注:StringBuilder是StringBuffer的前身,其效率有点低,但允许采用多线程的方式执行添加或删除字符的操作。如果所有字符串在一个单线程中编辑。则应该使用StringBuffer类替代他。这两个的API是相同的。
API:
StringBuilder()
构造一个空的字符串构建器。
int length()
返回构建器或缓冲器中的代码单元数量。
StringBuilder append(String str)
追加一个字符串并返回this。
void setCharAt(int i,char c)
将第i个代码单元设置为c。
StringBuilder insert(int offset,String str)
在offset位置插入一个字符串并返回this。
StringBuilder delete(int startIndex,int endIndex)
删除偏移量从startIndex到-endIndex-1的代码单元并返回this。
StringBuilder toString()
返回一个与构建器或缓冲器内容相同的字符串
8.Arrays类
API:
static String toString(type[] a)
返回包含a中数据元素的字符串,这些数据元素被放在括号内,并用逗号分隔。
参数:a 类型为int,long,short,float,double,char,byte的数组
static type copyOf(type[] a,int length)
static type copyOf(type[] a,int start,int end)
返回与a类型相同的一个数组,其长度为length或者end-start,数组元素为a的值。
参数:a ...
start 起始下标(包含这个值)
end 终止下标(不包含这个值)。这个值可能大于a.length。在这种情况下,结果为0或false
length 拷贝的数据元素长度。如果length值大于a.length,结果为0或false。否则,数组中只有前面length个数据元素的拷贝值。
static void sort(type[] a)
采用优化的快速排序算法对数组进行排序。
参数:a ...
static int binarySearch(type[] a,int start,int end,type v)
采用二分搜索算法查找值v,如果查找成功返回相应的下标值,否则返回一个负数r,-r-1是为保持a有序v应插入的位置。
static void fill(type[] a,type v)
将数字的所有数据元素值设置为v。
static boolean equals(type[] a,type[] b)
如果两个数组大小相同,并且下标相同的元素都对应相等,返回true
转载于:https://www.cnblogs.com/Miromiaosang/p/8444368.html
CoreJava Reading Note(3:Fundamental structure)相关推荐
- GAN-overview reading note(3)Wasserstein GAN
文章目录 了解WGAN 强行写点理解 2019.4.13--子涣 了解WGAN 继续读GAN overview,在第一部分基本了解了GAN的基本概念,又在第二部分了解了LSGAN对其的改进,同时也基本 ...
- idea两个好用的插件-Code Reading Note与RestfulTool
1.问题描述 介绍两个idea插件,感觉很好用,记录下. 2.问题描述解决 2.1 Code Reading Note插件--代码阅读笔记 这个插件的原始功能是:对指定代码记录阅读笔记,然后增加到指定 ...
- Reading Note(8) ——GNN for DSE Optimization
这篇博客是一篇论文阅读札记,这篇论文的主题是使用GNN来优化加速器设计中的设计空间探索耗时过长的问题. 这篇文章的标题是<Enabling Automated FPGA Accelerator ...
- 「MICCAI 2016」Reading Note
Sina Weibo:东莞小锋子Sexyphone Tencent E-mail:403568338@qq.com http://blog.csdn.net/dgyuanshaofeng/articl ...
- READING NOTE: R-FCN: Object Detection via Region-based Fully Convolutional Networks
转载自: http://blog.csdn.net/joshua_1988/article/details/51484412 TITLE: R-FCN: Object Detection via Re ...
- Thinking in Java Reading Note(5.初始化与清理)
1.用构造器确保初始化 可以假想为编写的每个类都定义一个initialize()方法.该方法的名称提醒你在使用其对象之前,应首先调用initialize().然而,这同时意味着用户必须记得自己去调用此 ...
- 01_Dive_into_python (reading note)
难度:* Don't bury your burden in saintly silence. You have a problem? page 41 如有涉及到**知识版权,联系删除 SUFFIXE ...
- Reading Note(10)——AutoBridge
这篇论文是FPGA 2021年的best paper award,主要解决的是在HLS编译过程中优化布局和布线,最终达到整个multi-die的FPGA板上的大规模HLS设计时钟频率尽可能提升的目的, ...
- Paper Reading: Generating Artistic Portrait Drawings from Face Photos with Hierarchical GANs
Paper Reading Note URL: https://cg.cs.tsinghua.edu.cn/papers/CVPR-2019-Drawing.pdf TL;DR CVPR2019一篇来 ...
最新文章
- empress和queen区别_queen与empress
- android java服务,Android进阶学习必会:Java Binder中的系统服务
- 全球及中国液压磁路保护器行业发展规划与产销需求预测报告2022版
- Linux复习资料——MySQL-client-5.6.50-1.el7.x86_64与MySQL-server-5.6.50-1.el7.x86_64包安装MySQL全过程
- Android之提示Unable to instantiate fragment***MyLikeFragment .could not find Fragment constructor
- 近似线性依靠matlab_不要仅仅依靠单元测试
- 光纤交换机的配置 光纤交换机的由来是什么
- mysql分布式一致性hash_分布式哈希一致性
- eclipse中folder、source folder和package的区别
- Java-排序算法-冒泡排序
- C# LINQ学习笔记四:LINQ to OBJECT之操作文件目录
- 广度优先搜索_快速入门广度优先搜索
- 添加删除桌面用户ubuntu10.10
- 从零开始学前端:函数 --- 今天你学习了吗?(JS:Day8)
- 如何成功清理重建CloudStack环境
- java中的冒泡排序和交换排序
- 惊呆了!监控也会骗人了,视频对象一秒删除
- 奉劝各位应届毕业生,该打造你的技术影响力了,只会抄代码,该怎么办?
- 转:什么都没有反而可以做得更好
- 批量爬取网站图片-“优美库”篇(爬虫实战)
热门文章
- auto_ptr个人用
- 使用 google_breakpad 分析 Electron 崩溃日志文件
- 判断是否为数组的 JavaScript 方法总结
- 关于vmware中的centos无法ping通宿主机或者是外网的解决思路
- LeetCode:通过递归方法打印杨辉三角形
- 北大AI第八讲 李航 自然语言处理的现实与挑战--李航 VS 雷鸣 对话全文
- android uri转file_Android世界:ContentProvider使用
- python range倒序_Python算法学习之堆和堆排序
- 树莓派官方支持的Tensorflow版本
- 讨论简书留言界面的设计