字符串

  • 字符串应用主要分为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. C#开发微信门户及应用(6)--微信门户菜单的管理操作

    前面几篇继续了我自己对于C#开发微信门户及应用的技术探索和相关的经验总结,继续探索微信API并分享相关的技术,一方面是为了和大家对这方面进行互动沟通,另一方面也是专心做好微信应用的底层技术开发,把基础 ...

  2. .NET DateTime类型变量作为参数时设置默认值

    一个小的 Tips. .NET 中函数参数的默认值需要是编译时常量.如果参数是引用类型,可以设置Null,如果是值类型,可以设置相应的编译时常量,如整型可以用整数,但对于DateTime(结构体,值类 ...

  3. JSON.parse与eval的区别

    JSON.parse与eval和能将一个字符串解析成一个JSON对象,但还是有挺大区别. 测试代码 var A = "{ a: 1 , b : 'hello' }"; var B ...

  4. 使用WebRTC搭建前端视频聊天室——点对点通信篇

    WebRTC给我们带来了浏览器中的视频.音频聊天体验.但个人认为,它最实用的特性莫过于DataChannel——在浏览器之间建立一个点对点的数据通道.在DataChannel之前,浏览器到浏览器的数据 ...

  5. WebViewJavascriptBridge源码探究--看OC和JS交互过程

    今天把实现OC代码和JS代码交互的第三方库WebViewJavascriptBridge源码看了下,oc调用js方法我们是知道的,系统提供了stringByEvaluatingJavaScriptFr ...

  6. Android 如何有效的解决内存泄漏的问题

    前言:最近在研究Handler的知识,其中涉及到一个问题,如何避免Handler带来的内存溢出问题.在网上找了很多资料,有很多都是互相抄的,没有实际的作用. 本文的内存泄漏检测工具是:LeakCana ...

  7. JAVA编程思想(第四版)学习笔记----11.5 List,11.6迭代器

    Collection类的层次结构图(来源与网络)如下所示: 接口:Iterator<T> public interface Iterable<T> Iterable<T& ...

  8. java中使用javamail发送邮件

    1. 电子邮件协议 电子邮件的在网络中传输和网页一样需要遵从特定的协议,常用的电子邮件协议包括 SMTP,POP3,IMAP. 其中邮件的创建和发送只需要用到 SMTP协议,所有本文也只会涉及到SMT ...

  9. Mysql Join

    在前面的博文中,我们已经学会了如果在一张表中读取数据,这是相对简单的,但是在真正的应用中经常需要从多个数据表中读取数据. 本章节我们将向大家介绍如何使用 MySQL 的 JOIN 在两个或多个表中查询 ...

  10. 搭建基于PHP的www服务器

    安装MySQL #!/bin/bash mount |grep "/dev/sr0" if [ "$?" != 0 ];then mount /dev/sr0 ...