字符串

  • 字符串应用主要分为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. 如何决解项目中hibernate中多对多关系中对象转换json死循环

    先写一下原因吧!我是写的SSH项目,在项目中我遇到的问题是把分页对象(也就是pageBean对象)转化为json数据,下面为代码: public class PageBean <T>{// ...

  2. ECharts的简单使用过程

    网页中经常要使用图表,以前使用的是highcharts插件,现在发现echarts使用起来和highcharts差不多,但是个人感觉echarts更酷炫,以下是echarts的使用过程,其实highc ...

  3. Java-加载数据库驱动,取得数据库连接

    在Java中想要进行数据库操作,最重要的两个步骤就是加载数据驱动,然后取得数据库连接. 1.加载 数据库驱动( Class.forName(String className) ): 因为Java是一种 ...

  4. 共享Excel编辑的一些资源

    官方资料: 使用共享工作簿进行协作 相关介绍文章: http://www.ittribalwo.com/article/678.html http://www.wuji8.com/meta/85646 ...

  5. jdk jre jvm 三者之间关系

    JDK JDK是java开发工具包,是Sun公司针对Java开发员的产品.     JDK 中包含JRE,在JDK安装的目录下有一个叫jre的目录,里面有两个文件夹,bin/和lib,其中bin就是j ...

  6. DOM加载过程中ready和load的区别

    在浏览器地址栏输入URL地址,浏览器开始加载页面时,有以下几个过程 1.浏览器开始解析HTML文档 2. 浏览器遇到HTML文档中的<script>元素以及CSS样式文件,并且没有asyn ...

  7. CRM sql 查询

    转自博友"菜刀-soft"! 查询实体信息: --查询实体信息,实体名称:account select * from MetadataSchema.Entity where nam ...

  8. Office 365使用情况调查不完全分析报告

    感谢大家参与了9月13日在Office 365技术群(O萌)中发起的一个关于Office 365使用情况的调查,在一天左右的时间内,我们一共收到了67份反馈,其中绝大部分是在3分钟内提交的. 本次调查 ...

  9. Android无需申请权限拨打电话

    Android打电话有两种实现方法: 第一种方法,拨打电话跳转到拨号界面.源代码如下: Intent intent = new Intent(Intent.ACTION_DIAL); Uri data ...

  10. js的replace函数入参为function时的疑问

    近期在写js导出excel文件时运用到replace方法,此处详细的记录下它各个参数所代表的的意义. 定义和用法 replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式 ...