字符串

  • 字符串应用主要分为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学习笔记(四)的更多相关文章

  1. Java学习笔记四---打包成双击可运行的jar文件

    写笔记四前的脑回路是这样的: 前面的学习笔记二,提到3个环境变量,其中java_home好理解,就是jdk安装路径:classpath指向类文件的搜索路径:path指向可执行程序的搜索路径.这里的类文 ...

  2. Java学习笔记四:Java的八种基本数据类型

    Java的八种基本数据类型 Java语言提供了八种基本类型.六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型. Java基本类型共有八种,基本类型可以分为三类,字符类型char,布 ...

  3. Java学习笔记四——运算符

    算术运算符 加减乘除(+.-.*./)就不说了. 求余运算符% 描述:第一个操作数除以第二个操作数,得到一个整除的结果后剩下的值就是余数 注意:求余预算的结果不一定总是整数,当操作数是浮点数时,结果可 ...

  4. Java 学习笔记 (四) Java 语句优化

    这个问题是从headfirst java看到的. 需求: 一个移动电话用的java通讯簿管理系统,要求最有效率的内存使用方法. 下面两段程序的优缺点,哪个占用内存更少. 第一段: Contact[]c ...

  5. Java学习笔记四:三目运算符与字符串连接符等

    一 .三目运算符与自增自减 GitHub代码练习地址:https://github.com/Neo-ML/JavaPractice/blob/master/OperPrac02.java 条件运算符由 ...

  6. Java学习笔记四

    1.简介.进程和线程:简单的说就是进程负责为程序开辟内存空间,线程负责具体的执行单元(执行路径). 一个进程中可以有多个执行路径,称为多线程.CPU一次只能执行一个进程,但是一个进程内部可以有多个线程 ...

  7. 面向对象三大特征之封装与static——(Java学习笔记四)

    面向对象     编程本质:以类的方式组织代码,以对象的方式组织(封装)数据 对象:具体的事物,某个类的对象(实例) 类:是对对象的抽象,用于描述同一类型的对象的一个抽象概念 对象和类的关系:特殊到一 ...

  8. java之jvm学习笔记四(安全管理器)

    java之jvm学习笔记四(安全管理器) 前面已经简述了java的安全模型的两个组成部分(类装载器,class文件校验器),接下来学习的是java安全模型的另外一个重要组成部分安全管理器. 安全管理器 ...

  9. 零拷贝详解 Java NIO学习笔记四(零拷贝详解)

    转 https://blog.csdn.net/u013096088/article/details/79122671 Java NIO学习笔记四(零拷贝详解) 2018年01月21日 20:20:5 ...

  10. Java IO学习笔记四:Socket基础

    作者:Grey 原文地址:Java IO学习笔记四:Socket基础 准备两个Linux实例(安装好jdk1.8),我准备的两个实例的ip地址分别为: io1实例:192.168.205.138 io ...

随机推荐

  1. 消耗战 bzoj 2286

    消耗战(2s 512MB)repair [问题描述] 在一场战争中,战场由n个岛屿和n-1个桥梁组成,保证每两个岛屿间有且仅有一条路径可达.现在,我军已经侦查到敌军的总部在编号为1的岛屿,而且他们已经 ...

  2. 运算符.png

  3. Activity生命周期

    在开始之前我们先了解一下什么是Activity: 直接翻译为:"活动",而在Android中更多的是代表手机的屏幕,是Android的四大组件之一,重要的组成单元,提供了与用户交互 ...

  4. 详解java定时任务

    在我们编程过程中如果需要执行一些简单的定时任务,无须做复杂的控制,我们可以考虑使用JDK中的Timer定时任务来实现.下面LZ就其原理.实例以及Timer缺陷三个方面来解析JavaTimer定时器. ...

  5. java中File类的使用

    public class FileLei {    public static void main(String[] args) throws IOException {        //..表示上 ...

  6. SQL中select与set的区别-转载

    下表列出 SET 与 SELECT 的区别   SELECT SET 同时对多个变量同时赋值时 支持 不支持 表达式返回多个值时 将返回的最后一个值赋给变量 出错 表达式未返回值时 变量保持原值 变量 ...

  7. CentOS6.x生产环境下一键安装mono+jexus的脚本,自启动,带服务,版本号自控

    转自: http://linuxdot.net/bbsfile-3784 1.支持哪些个平台?答:暂时仅支持CentOS6.x平台,7.x未测试,欢迎测试并到群里反馈给我(昵称:无聊人士) 2.一键安 ...

  8. DependencyResolver.Current

    描述: 获取依赖关系解析程序的实现. 命名空间: System.Web.Mvc 程序集: System.Web.Mvc(在 System.Web.Mvc.dll 中) 用例: IRecLockServ ...

  9. ubuntu声音系统

    查看声卡:cat /proc/asound/cards 显示所有ALSA的组件:cat /proc/asound/device aplay -l ubuntu使用pulseaudio,是ALSA(先进 ...

  10. [iOS]技巧集锦:UICollectionView在旋转屏幕后Cell中的约束不起作用或自动布局失效

    这似乎是iOS的一个BUG(ref: stackoverflow的大神们讲的) 解决方案 在继承自UITableViewCell的子类中的init方法中加入如下设置: self.contentView ...