Java核心技术之基础知识
一、类型转换
- 数值类型之间的转换
- 强制类型转换
a) 将一个数值强制转换成另一种类型时,如果超出目标类型的便是范围,结果就会截断成一个完全不同的值。(如:(byte)300的实际值为44)
b) 将boolean类型的值转换成其他类型时,可使用三目表达式(如:b?1:0 将boolean转换成int型)
二、运算符
- Java没有逗号运算符,但可以在for语句的第1部分和第3部分使用逗号分隔表达式列表
- 运算符优先级
三、枚举类型
四、字符串
1. String类被称为不可变字符串,不可修改一个字符串中的任何一个字符,但可以让其引用另外一个字符串。不可变字符串优点:编译器可以让字符串共享,共享所带来的高效率远远胜于提取、拼接字符串所带来的低效率。
2. 当一个字符串与一个非字符串进行拼接时,后者被转换成字符串(任何一个Java对象都可以转换成字符串)
3. 常用String静态方法
如果需要把多个字符串放在一起,用一个定界符分割,可以使用静态join方法。
equals方法检测两个字符串是否相等,如需不区分大小写,可以使用equalsIgnoreCase。
trim方法返回一个删除了源字符串头部和尾部的空格的新字符串。
format方法创建一个格式化的字符串而不打印输出
4. StringBuffer:效率较低,但允许采用多线程的方式执行添加或删除字符的操作,而jdk5.0引入的StringBuilder是单线程的。这两个类的API是相同的。
五、 输入输出
1.控制台读取输入,首先需要构造一个Scanner对象,并与标准输入流(即System.in)关联(即 Scanner in = new Scanner(System.in);)。Scanner中,nextLine()读取一行(包含空格,以回车为分隔符);next()读取一个单词(以空格为分隔符);nextInt()读取一个整数,nextDouble()读取一个浮点数…
2. 格式化输出(System.out.printf())
用于printf的转换符、标志(控制格式化输出)、日期与时间的转换符(详见博文)。
3. 文件输入输出
要想对文件进行读取,需要一个用File对象构造的Scanner对象(即Scanner in = new Scanner(Paths.get(“myfile.txt”),“utf-8”))
要想写入文件,就需要构造一个PrintWriter对象。(即PrintWriter out = new PrintWriter(“myfile.txt”,”utf-8”),当文件不存在时会自动创建文件)
六、控制流程
1. 块(即复合语句)是由一堆大括号括起来的若干条简单的Java语句。不能再嵌套的两个块中声明同名的变量。
2. 中断控制流程语句(break、continue)
在一条语句或语句块前加上标签及冒号(如 hello:),使得可以在循环语句中使用break 标签名或continue 标签名(如break hello; continue hello;),能跳出或跳到标签所代表的语句块。
七、大数值
1. BigInteger类实现了任意精度的证书运算,BigDecimal实现了任意精度的浮点数运算,但不可以使用算术运算符(+-*/%),而是使用相应的方法
八、数组
1. 数字数组所有元素会被初始化为0,boolean数组是false,对象数组的元素则是null。
2. 常用Arrays类静态方法
打印数组可使用Arrays.toString(a);
Arrays.copyOf()将一个数组的所有值拷贝到一个指定长度的新数组中,如果新数组长度小于源数组,则只拷贝最前面的数据元素,否则则对多余的元素自动赋值,规则参考上一条。
Arrays.sort()对数值型数组进行排序
Arrays.binarySearch()采用二分搜索算法查找值
Arrays.fill()将数组的所有数据元素设置为同一个参数
Arrays.equal()如果两个数组的大小及其下标对应的元素相等,则返回true
Java核心技术之基础知识的更多相关文章
- JAVA核心技术I---JAVA基础知识(工具类Arrays和Collections类)
一:工具类 –不存储数据,而是在数据容器上,实现高效操作 • 排序 • 搜索 –Arrays类 –Collection类 二:Arrays类(处理数组) (一)基本方法 –排序:对数组排序, sort ...
- JAVA核心技术I---JAVA基础知识(static关键字)
一:static特殊关键字用处 –变量 –方法 –类 –匿名方法 二:静态变量:类共有成员 –static变量只依赖于类存在(通过类即可访问),不依赖于对象实例存在. –所有的对象实例,对于静态变量都 ...
- Java核心技术 卷Ⅰ 基础知识(1)
第三章 Java的基本程序设计结构 Java对大小写敏感 命名规范为骆驼命名法,不能使用保留字 main方法必须声明为public 如果main方法正常退出,java应用程序的退出代码为0,表示成功运 ...
- Java核心技术卷一基础知识-第14章-多线程-读书笔记
第 14 章 多线程 本章内容: * 什么是线程 * 中断线程 * 线程状态 * 线程属性 * 同步 * 阻塞队列 * 线程安全的集合 * Collable与Future * 执行器 * 同步器 * ...
- Java核心技术卷一基础知识-第11章-异常、断言、日志和调试-读书笔记
第11章 异常.断言.日志和调试 本章内容: * 处理错误 * 捕获异常 * 使用异常机制的技巧 * 使用断言 * 日志 * 调试技巧 * GUI程序排错技巧 * 使用调试器 11.1 处理错误 如果 ...
- Java核心技术卷一基础知识-第8章-事件处理-读书笔记
第8章 事件处理 本章内容: * 事件处理基础 * 动作 * 鼠标事件 * AWT事件继承层次 8.1 事件处理基础 在AWT所知的事件范围内,完全可以控制事件从事件源(event source)例如 ...
- Java核心技术卷一基础知识-第5章-继承-读书笔记
第5章 继承 本章内容: * 类.超类和子类 * Object:所有类的超类 * 泛型数组列表 * 对象包装器和自动装箱 * 参数数量可变的方法 * 枚举类 * 反射 * 继承设计的技巧 利用继承,人 ...
- JAVA核心技术I---JAVA基础知识(映射Map)
一:映射Map分类 二:Hashtable(同步,慢,数据量小) –K-V对,K和V都不允许为null –同步,多线程安全 –无序的 –适合小数据量 –主要方法:clear, contains/con ...
- JAVA核心技术I---JAVA基础知识(集合set)
一:集合了解 (一)确定性,互异性,无序性 确定性:对任意对象都能判定其是否属于某一个集合 互异性:集合内每个元素都是无差异的,注意是内容差异 无序性:集合内的顺序无关 (二)集合接口HashSet, ...
- JAVA核心技术I---JAVA基础知识(时间类)
一:时间类库了解 java.util.Date(基本废弃,Deprecated) –getTime(),返回自1970..1以来的毫秒数 java.sql.Date(和数据库对应的时间类) //与数据 ...
随机推荐
- robotium—只有apk文件的测试
把ppt的内容总结一下,并把问题说明一下: 把基本步骤搞出来,用notepad的程序吧,直接安装apk,就当做是不知道源码就好啦! 直接用自己的手机上就行啦!! 一.重签名: 步骤: 1.直接运行re ...
- stark组件之pop操作【模仿Django的admin】
一.先看下什么django的admin的pop到底是个什么东西 其实就是这么一个东西, a.在添加页面,在一对多和多对多的项后加了一个+号 b.点击这个加号,会弹出对应的添加 页面,在新的添加 c.添 ...
- importlib的用法
这个模块可以通过字符串导入模块 比如我们有下面的例子 需要导入的模块的代码 在test_import目录下有一个test1的py文件 name = "中国是个大傻逼" class ...
- 【MINA学习笔记】—— 1.体系结构分析[z]
前言 Apache的MINA框架是一个早年非常流行的NIO框架,它出自于Netty之父Trustin Lee大神之手.虽然目前市场份额已经逐渐被Netty取代了,但是其作为NIO初学者入门学习框架是非 ...
- three.js raycaster射线碰撞的坑 (当canvas大小 不是屏幕大小是解决拾取物体的办法)
这里只是记录一下坑,方便查阅,内容主要援引自:three.js Raycaster 射线拾取 canvas不占满整屏时射线拾取存在偏差 1. 世界坐标系: 世界坐标系位于屏幕的中心(0,0,0),往右 ...
- PAT 1011 A+B和C (15)(C++&JAVA&Python)
1011 A+B和C (15)(15 分) 给定区间[-2^31^, 2^31^]内的3个整数A.B和C,请判断A+B是否大于C. 输入格式: 输入第1行给出正整数T(<=10),是测试用例的个 ...
- andorid 网格视图GridView
.xml <?xml version="1.0" encoding="utf-8"?> <GridView xmlns:android=&qu ...
- sql重复数据的过滤问题
有重复数据主要有一下几种情况: 1.存在两条完全相同的纪录 这是最简单的一种情况,用关键字distinct就可以去掉 example: select distinct * from table(表名) ...
- oracle表或视图不存在和标识符无效的问题解决
通过dbvisualizer修改表的名字时,一定要改成大写,否则会报错,数据库中没有该表的错误. 如果新的表名为小写,不行! select的时候,可以用小写名. 标识符无效解决:字段名默认都是大写的, ...
- CH6802 車的放置
原题链接 和棋盘覆盖(题解)差不多. 将行和列看成\(n+m\)个节点,且分属两个集合,如果某个节点没有被禁止,则行坐标对应节点向列坐标对应节点连边,然后就是求二分图最大匹配了. #include&l ...