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 ...
随机推荐
- 笔记:xubuntu下如何让系统默认使用nvidia显卡,而不是intel集显
经反复折腾,得到如下的解决方法: prime-select nvidia 简单吧,但关系是如果让它开机自动执行一次. 反复折腾了xinitrc ,~/.xinitrc , /etc/rc.local ...
- PHP 观察者模式
观察者模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新. [观察者模式中主要角色] 1.抽象主题(Subject)角色: 抽象主题提供了增加 ...
- 16款最佳的 jQuery Time Picker 时间选择插件
jQuery 插件可以为你做许多事情,你可以很容易地把这些插件集成到您的网站.网络上的 jQuery 日期选择器和日历插件很多,但找不到很满意的时间选择器插件. 在这里,我们收集了最好的一组 jQue ...
- json简单使用
web工程中如何将大量数据从服务器端传送到浏览器一直是很重要的一个问题. 其中一个解决方法是在服务器端将将数据封装成json格式,然后传给前台.废话不多说,下面讲干货. 1.要用json必须下载一个库 ...
- css和@import区别用法
css和@import都是调用外部样式表的方法. 一.用法 (1)link: <link rel="stylesheet" type="text/css" ...
- [Android]使用MVP解决技术债务(翻译)
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5892671.html 使用MVP解决技术债务 原文:https ...
- IT菜鸟的生存指南(二)新手村任务
此文献给那些刚误入IT行业的小菜鸟们,此文无法教你如何"当上CEO,迎娶白富美",那是电视剧情.现实IT行业里危机重重,竞争激励.这里教你的是如何生存.生存.生存- 恭(不)喜(幸 ...
- nginx 安全优化
http://nginx.org/en/docs/http/ngx_http_access_module.html 官网 1.允许特定的ip访问,拒绝特定ip server { listen 80; ...
- Block入门
iOS4.0开始,Block横空出世,它其实就是c预言的补充,书面点说就是带有自动变量的匿名函数,Block简洁,代码的可读性也高,因此深受广大开发者的喜爱,这一次给大家介绍Block的基本类型和项目 ...
- github常用操作
1.创建一个新的repository: $cd ~/hello-world //到hello-world目录,本地目录名与repository的名字不一定相同 $git init ...