Java学习笔记(四)
字符串
- 字符串应用主要分为String类操作与字符串生成器
- 在程序中频繁的进行附加字符串则使用字符串生成器StringBuilder
数组
概述
- 数组是具有相同数据类型的一组数据的集合
数组创建
- 先声明,再用new运算符进行内存分配
- 声明的同时为数组分配内存
数组初始化
int arr[] = new int[]{1,2,3,5,25};
//第一种初始化方式
int arr2[] = {34,23,12,6};
//第二种初始化方式
int[] arr = new int[3];
arr[0] = 1; // 为数组的第1个元素赋值为1
arr[1] = 2; // 为数组的第2个元素赋值为2
arr[2] = 3; // 为数组的第3个元素赋值为3
//第三种初始化方式
高维数组创建以及初始化
数组元素类型 数组名字[ ][ ];
数组元素类型[ ][ ] 数组名字;
type arrayname[][] = {
{value1,value2…valuen},
{value1,value2…valuen}
…
};
面向对象概述
- In other words,The properties and behavior of similar things encapsulated into the class
多态
- 父类对象应用于子类的特征就是多态
- 多态性允许以统一的风格编写程序,以处理种类繁多的已存在的类以及相关类,这统一风格可以由父类来实现,根据父类统一风格的处理,就可以实例化子类的对象。由于整个事件的处理都只依赖于父类的方法,所以日后只要维护和调整父类的方法即可,这样降低了维护的难度和时间
- 抽象类不能实例化对象。在多态的机制中,父类通常会被定义为抽象类,在抽象类中给出一个方法的标准,而不给出实现的具体流程,实质上这个方法也是抽象的
- 多态中最重要的是抽象类与接口,由抽象方法组成的集合就是接口
类成员
成员变量
- 成员变量是在类体中定义的变量,即全局变量
成员方法
- 成员方法是对象行为的描述
权限修饰符
- public
- private
- protected
this关键字
- 略
静态变量、常量、方法
- 在静态方法中不可以使用this关键字
- 在静态方法中不可以直接调用非静态方法
- 在Java中规定不能将方法体内的局部变量声明为static的
主方法
- 主方法也是静态的,所以要直接在主方法中调用其他方法,则该方法必须也是静态的
- 主方法没有返回值
- 主方法的形参为数组
对象
对象的比较
- 在Java语言中有两种对象的比较方式,分别为“==”运算符与equals()方法,实质上这两种方式有本质区别
- equals()方法是String类中的方法,它用于比较两个对象引用所指的内容是否相等
- “==”运算符比较的是两个对象引用的地址是否相等
对象的销毁
- Java中存在一种垃圾回收器
- 对象被视为垃圾有两种情况,一种是对象引用超过其作用范围或者将对象赋值为null
- 垃圾回收器只能回收那些由new操作符创建的对象
- 在Java中提供了一个finalize()方法,这个方法是Object类的方法,它被声明为protected,用户可以在自己的类中定义这个方法,如果用户在类中定义了finalize()方法,在垃圾回收时首先调用该方法,并且在下一次垃圾回收动作发生时,才能真正回收对象占用的内存
- 有一点需要明确的是,垃圾回收或是finalize()方法不保证一定会发生,比如Java虚拟机面临内存损耗待尽的情形,它是不会执行垃圾回收的。由于垃圾回收不受人为控制,具体执行时间也不确定,所以finalize()方法也就无法执行,为此,Java提供了System.gc()方法强制启动垃圾回收器,这与给120打电话通知医院来救护的道理一样,告知垃圾回收器来清理
包装类
- Integer
- Long
- Short
- Boolean
- Byte
- Character
- Double
- Float
- Number
数字处理
数字格式
- DecimalFormat类中使用一些特殊字符构成一个格式化模板,使数字按照一定规则进行匹配
字符 | 字符含义 |
---|---|
0 | 代表阿拉伯数字,使用特殊字符“0”表示数字的一位阿拉伯数字,如果该位不存在数字,则显示0 |
# | 代表阿拉伯数字,使用特殊字符“#”表示数字的一位阿拉伯数字,如果该位存在数字,则显示字符,如果该位不存在数字,则不显示 |
. | 小数分隔符或货币小数分隔符 |
- | 负号 |
, | 分组分隔符 |
E | 分隔科学技术法中的尾数和指数 |
% | 本符号放置在数字的前缀或后缀,将数字乘以100显示为百分数 |
\u2030 | 本符号放置在数字的前缀或后缀,将数字乘以1000显示为千分数 |
¤\u00A4 | 本符号放置在数字的前缀或后缀,作为货币记号 |
‘ | 本符号为单引号,当上述特殊字符出现在数字中,应为特殊符号添加单引号,系统会将此符号视为普通符号处理 |
数学运算
- Math类
- Math.random()方法是可以产生随机数的
随机数
- 在Math类中存在一个random方法,此方法是可以产生一个0-1的double型数据
- m+(int)(Math.random()*n)此公式可以产生一个m~m+n之间的一个随机数
- Random类,Java.util.Random类,可以通过实例化一个Random对象创建一个随机数生成器。以这种形式实例化对象时,Java编译器以系统当前时间作为随机数生成器的种子,因为每时每刻的时间不可能相同,所以产生的随机数将不同,但是如果运行速度太快,也会产生两次运行结果相同的随机数。同时也可以在实例化Random类对象时,设置随机数生成器的种子
方法 | 作用 |
---|---|
public int nextInt() | 返回一个大等于0小于10的整数 |
public int nextInt(int n) | 返回大等于0小于n的整数 |
public long nextLong() | 返回一个随机长整型值 |
public boolean nextBoolean() | 返回随机布尔型值 |
public float nextFloat() | 返回一个随机浮点型值 |
public double nextDouble() | 返回一个随机双精度值 |
public double nextGaussian() | 返回一个概率密度为高斯分布的双精度值 |
大数字
- BigInteger,BigInteger支持任意精度的整数,也就是说在运算中BigInteger类型可以准确的表示任何大小的整数值而不会丢失任何信息
- BigDecimal,BigDecimal类支持任何精度的定点数,可以用它来精确计算货币值
Annotation注解
元数据
- 元数据从metadata一词译来,就是“关于数据的数据”的意思,元数据的功能有很多种,元数据可以用来创建文档,跟踪代码的依赖性,执行编译时格式检查,代替已有的配置文件
- 根据它所起的作用分为三类,编写文档,代码分析,编译检查
- 元数据以标签的形式存在于Java代码中
- 元数据描述的信息是类型安全的,即元数据内部的数据都是有明确类型的
- 元数据需要编译器之外的工具额外的处理用来生成其他的程序部件
- 元数据可以存在与Java源码中也可以存在于编译后的class文件内部
注解应用场合
- 生成文档,也是Java中最早提供的注解,@see、@parap、@return等
- 跟踪代码依赖性,实现替代配置文件功能,比较常见的spring2.5开始基于注解配置,作用就是减少配置文件的数量
- 在编译时进行格式检查,@override检查方法是否为覆盖方法
注解分类
根据注解参数的个数
- 标记注解:一个没有成员定义的Annotation类型被称为标记注解,这种annotation类型仅使用自身的存在与否来为我们提供信息,比如@override
- 单值注解
- 完整注解
根据注解使用方法和途径
- jdk内置系统注解,JavaSE中内置三个标准注解,定义在java.lang中,@override、@Deprecated(过时方法)、@SuppressWarnnings(用于通知Java编译器禁止特定的编译警告)
- 元注解
- 自定义注解(第三方提供和自己定义)
基本注解使用注意事项
- @override,检查所检测方法的名字是否覆盖对了父类方法的名字
- @Deprecated,@Deprecated这个annotation类型和javadoc中的@deprecated这个tag是有区别的,前者是java编译器识别,后者是被javadoc工具识别用来生成文档,使用@Deprecated注解标示方法过期,同时在方法注释中用@deprecated tag标示该方法已经过时
- @SuppressWarnnings,抑制编译器的警告,它有一个类型为String[]的成员,这个成员的值为被禁止的警告名
注解学习参考文章
Java学习笔记(四)的更多相关文章
- Java学习笔记四---打包成双击可运行的jar文件
写笔记四前的脑回路是这样的: 前面的学习笔记二,提到3个环境变量,其中java_home好理解,就是jdk安装路径:classpath指向类文件的搜索路径:path指向可执行程序的搜索路径.这里的类文 ...
- Java学习笔记四:Java的八种基本数据类型
Java的八种基本数据类型 Java语言提供了八种基本类型.六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型. Java基本类型共有八种,基本类型可以分为三类,字符类型char,布 ...
- Java学习笔记四——运算符
算术运算符 加减乘除(+.-.*./)就不说了. 求余运算符% 描述:第一个操作数除以第二个操作数,得到一个整除的结果后剩下的值就是余数 注意:求余预算的结果不一定总是整数,当操作数是浮点数时,结果可 ...
- Java 学习笔记 (四) Java 语句优化
这个问题是从headfirst java看到的. 需求: 一个移动电话用的java通讯簿管理系统,要求最有效率的内存使用方法. 下面两段程序的优缺点,哪个占用内存更少. 第一段: Contact[]c ...
- Java学习笔记四:三目运算符与字符串连接符等
一 .三目运算符与自增自减 GitHub代码练习地址:https://github.com/Neo-ML/JavaPractice/blob/master/OperPrac02.java 条件运算符由 ...
- Java学习笔记四
1.简介.进程和线程:简单的说就是进程负责为程序开辟内存空间,线程负责具体的执行单元(执行路径). 一个进程中可以有多个执行路径,称为多线程.CPU一次只能执行一个进程,但是一个进程内部可以有多个线程 ...
- 面向对象三大特征之封装与static——(Java学习笔记四)
面向对象 编程本质:以类的方式组织代码,以对象的方式组织(封装)数据 对象:具体的事物,某个类的对象(实例) 类:是对对象的抽象,用于描述同一类型的对象的一个抽象概念 对象和类的关系:特殊到一 ...
- java之jvm学习笔记四(安全管理器)
java之jvm学习笔记四(安全管理器) 前面已经简述了java的安全模型的两个组成部分(类装载器,class文件校验器),接下来学习的是java安全模型的另外一个重要组成部分安全管理器. 安全管理器 ...
- 零拷贝详解 Java NIO学习笔记四(零拷贝详解)
转 https://blog.csdn.net/u013096088/article/details/79122671 Java NIO学习笔记四(零拷贝详解) 2018年01月21日 20:20:5 ...
- Java IO学习笔记四:Socket基础
作者:Grey 原文地址:Java IO学习笔记四:Socket基础 准备两个Linux实例(安装好jdk1.8),我准备的两个实例的ip地址分别为: io1实例:192.168.205.138 io ...
随机推荐
- Hibernate一对多单向(双向)关联映射
(1).编写配置文件 Hibernate通过读写默认的XML配置文件hibernate.cfg.xml加载数据库配置信息.代码如下: <hibernate-configuration> & ...
- Sublime Text 2 快捷操作
Sublime Text 2 包含了大量快捷操作,而且还很方便修改和追加自己喜欢的快捷键. 查看快捷键的方式也很简单: 点击菜单栏:Preferences->Key Bindings –Defa ...
- R语言:常用统计检验
统计检验是将抽样结果和抽样分布相对照而作出判断的工作.主要分5个步骤: 建立假设 求抽样分布 选择显著性水平和否定域 计算检验统计量 判定 -- 百度百科 假设检验(hypothesis test)亦 ...
- 《连载 | 物联网框架ServerSuperIO教程》- 3.设备驱动介绍
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
- Canvas的width,height 和 样式中Canvas的width,height
控制Canvas的大小,有两种方式: 1:直接设置Canvas标签上的书width,height属性值; 2:通过Css设置Canvas的width,height; 这两种方式,区别是很大的. 1:C ...
- JavaScript和jQuery的类型判断
此博文为原创,转载请注明出处! 对于类型的判断,JavaScript用typeof来进行. 栗子: console.log(typeof null); //object console.log(typ ...
- SharePoint 2010 数据库xxx的事务日志已满
接到领导安排,说客户有问题 请求协助解决,对方给我展示的错误日志,如下: 数据库'WSS_Content_xxxx'的事务日志已满.若要查明无法重用日志中的空间的原因,请参阅sy.databases中 ...
- ArcGIS Engine开发之空间查询
空间查询功能是通过用户选择的空间几何体以及该几何体与当前地图中要素之间的几何关系进行空间查找,从而得到查询结果的操作. 相关类与接口 空间查询相关的类主要是SpatialFilter类,其实现的接口主 ...
- 通过安装一个描述文件在控制台获得设备的udid
在我的这篇博客里面说明了本地获得设备udid的方法,但是只能在模拟器中获得http://www.cnblogs.com/liyy2015/p/6090204.html 当然可以在设备上集成苹果的MDM ...
- 9.PNG的制作
1.背景自适应且不失真问题的存在 制作自适应背景图片是UI开发的一个广泛问题,也是界面设计师渴望解决的问题,我相信我们彼此都深有体会. 比如: 1.列表的背景图一定,但是列表的高度随着列表 ...