元器件商城网站建设,网站建设用图,营销网站设计包括,地方信息网站源码字符串操作
String类
String可以表示一个字符串。String类实际是使用字符数组存储的。
String类的两种赋值方式#xff1a;
一种称为直接赋值#xff1a;
String name “小白” 通过关键字new调用String的构造方法赋值
String name new String(“小白”)String类的两…字符串操作
String类
String可以表示一个字符串。String类实际是使用字符数组存储的。
String类的两种赋值方式
一种称为直接赋值
String name “小白” 通过关键字new调用String的构造方法赋值
String name new String(“小白”)String类的两种赋值分析
字符串常量池String name new String(“小白”)在内存中的分析String name “小白”在内存中的分析
String类编译期与运行期分析
编译期和运行期代码示例4种情况分析
String类字符与字符串操作方法
String类字节与字符串操作方法
String类判断是否以指定内容开头或结尾
String类替换操作
String类字符串截取操作
String类字符串拆分操作
String类字符串查找操作
String类其它操作方法
StringBuffer类
在实际开发当中我们经常会使用到字符串连接的操作如果用String来操作则使用“”号完成字符串的连接操作。
使用String连接字符串代码性能会非常低因为String的内容不可改变。 解决这个问题的方法是使用StringBuffer。
StringBuffer类源码分析
StringBuffer常用操作方法
StringBuilder类
StringBuffer的兄弟StringBuilder 一个可变的字符序列。此类提供一个与 StringBuffer 兼容的 API但不保证同步。该类被设计用作 StringBuffer 的一个简易替换用在字符串缓冲区被单个线程使用的时候这种情况很普遍。如果可能建议优先采用该类因为在大多数实现中它比StringBuffer 要快。
JDK1.5以后字符串相加原理分析 程序国际化
对国际化程序的理解
Internationalization国际化程序可以这样理解
同一套程序代码可以在各个语言环境下进行使用。各个语言环境下只是语言显示的不同那么具体的程序操作本身都是一样的那么国际化程序完成的就是这样的一个功能
Locale类
Locale 对象表示了特定的地理、政治和文化地区。需要 Locale 来执行其任务的操作称为语言环境敏感的操作它使用 Locale 为用户量身定制信息。例如显示一个数值就是语言环境敏感的操作应该根据用户的国家、地区或文化的风俗/传统来格式化该数值。
使用此类中的构造方法来创建 Locale
Locale(String language)
Locale(String language, String country)通过静态方法创建Locale
getDefault()ResourceBundle类
国际化的实现核心在于显示的语言上通常的做法是将其定义成若干个属性文件文件后缀是*.properties属性文件中的格式采用“keyvalue”的格式进行操作。
ResourceBundle类表示的是一个资源文件的读取操作所有的资源文件需要使用ResourceBundle进行读取读取的时候不需要加上文件的后缀。getBundle(String baseName)getBundle(String baseName,Locale locale)getString(String key)
处理动态文本
前面的示例读取的内容都是固定的如果现在假设要想打印这样的信息“欢迎你XXX”具体的名字不是固定的那么就要使用动态文本进行程序的处理。进行动态的文本处理必须使用java.text.MessageFormat类完成。这个类是java.text.Format的子类。 Math与Random类
Math类
Math 类包含用于执行基本数学运算的方法如初等指数、对数、平方根和三角函数。 使用Math类可以有两种方式
直接使用Math所在的包java.lang为默认引入的包使用 import static java.lang.Math.abs; 静态导入
Random类 Random此类的实例用于生成伪随机数流 日期操作类
Date类
类 Date 表示特定的瞬间精确到毫秒也就是程序运行时的当前时间。
Date date new Date(); // 实例化Date对象表示当前时间Calendar类
Calendar日历类使用此类可以将时间精确到毫秒显示。
//两种实例化方式
Calendar c Calendar.getInstance();
Calendar c new GregorianCalendar();DateFormat类及子类SimpleDateFormat 对象比较器
对两个或多个数据项进行比较以确定它们是否相等或确定它们之间的大小关系及排列顺序称为比较。 前面我学习过Arrays.sort方法可实现对象的排序操作
public static void sort(Object[] a)Comparable接口
此接口强行对实现它的每个类的对象进行整体排序。这种排序被称为类的自然排序类的 compareTo 方法被称为它的自然比较方法。
Comparator接口
Comparable接口是要求自定义类去实现按照OO原则对修改关闭对扩展开放。那么如果这个类已经定义好了不想再去修改它那如何实现比较呢Comparator接口强行对某个对象collection进行整体排序的比较。 对象的克隆
将一个对象复制一份称为对象的克隆技术。 在Object类中存在一个clone()方法
protected Object clone() throws CloneNotSupportedException如果某个类的对象要想被克隆则对象所在的类必须实现Cloneable接口。此接口没有定义任何方法是一个标记接口。 System与 Runtime类
System类代表系统系统级的很多属性和控制方法都放置在该类的内部。该类位于java.lang包。
成员变量
System类内部包含in、out和err三个成员变量分别代表标准输入流(键盘输入)标准输出流(显示器)和标准错误输出流。
成员方法
System类中提供了一些系统级的操作方法
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)该方法的作用是数组拷贝也就是将一个数组中的内容复制到另外一个数组中的指定位置由于该方法是native方法所以性能上比使用循环高效。
public static long currentTimeMillis()该方法的作用是返回当前的计算机时间时间的表达格式为当前计算机时间和GMT时间1970年1月1号0时0分0秒所差的毫秒数。
public static void exit(int status)该方法的作用是退出程序。其中status的值为0代表正常退出非零代表异常退出。使用该方法可以在图形界面编程中实现程序的退出功能等。
public static void gc()该方法的作用是请求系统进行垃圾回收。至于系统是否立刻回收则取决于系统中垃圾回收算法的实现以及系统执行时的情况。
public static String getProperty(String key)该方法的作用是获得系统中属性名为key的属性对应的值。 java.version Java 运行时环境版本java.home Java 安装目录os.name 操作系统的名称os.version 操作系统的版本user.name 用户的账户名称user.home 用户的主目录user.dir 用户的当前工作目录
Runtime类每个 Java 应用程序都有一个 Runtime 类实例使应用程序能够与其运行的环境相连接。
//获取Java运行时相关的运行时对象
Runtime rt Runtime.getRuntime();
System.out.println(处理器数量 rt.availableProcessors() 个);
System.out.println(Jvm总内存数 rt.totalMemory() byte);
System.out.println(Jvm空闲内存数 rt.freeMemory() byte);
System.out.println(Jvm可用最大内存数 rt.maxMemory() byte);
//在单独的进程中执行指定的字符串命令。
rt.exec(notepad);数字处理工具类
BigInteger可以让超过Integer范围内的数据进行运算。
构造方法
public BigInteger(String val)常用方法
public BigInteger add(BigInteger val)
public BigInteger subtract(BigInteger val)
public BigInteger multiply(BigInteger val)
public BigInteger divide(BigInteger val)
public BigInteger[] divideAndRemainder(BigInteger val)BigDecimal由于在运算的时候float类型和double很容易丢失精度为了能精确的表示、计算浮点数Java提供了BigDecimal 不可变的、任意精度的有符号十进制数。
构造方法
public BigDecimal(String val)常用方法
public BigDecimal add(BigDecimal augend)
public BigDecimal subtract(BigDecimal subtrahend)
public BigDecimal multiply(BigDecimal multiplicand)
public BigDecimal divide(BigDecimal divisor)DecimalFormatJava 提供 DecimalFormat类帮你用最快的速度将数字格式化为你需要的样子。例如取2位小数。
示例
double pi3.1415927; //圆周率
//取一位整数结果3
System.out.println(new DecimalFormat(0).format(pi));
//取一位整数和两位小数结果3.14
System.out.println(new DecimalFormat(0.00).format(pi));
//取两位整数和三位小数整数不足部分以0填补结果03.142
System.out.println(new DecimalFormat(00.000).format(pi));
//取所有整数部分结果3
System.out.println(new DecimalFormat(#).format(pi));
//以百分比方式计数并取两位小数结果314.16%
System.out.println(new DecimalFormat(#.##%).format(pi));MD5工具类
MD5的全称是Message-Digest Algorithm 5信息-摘要算法
//确定计算方法
MessageDigest md5MessageDigest.getInstance(MD5);
//JDK1.8新增Base64
String newstr Base64.getEncoder().encodeToString(md5.digest(str.getBytes(utf-8)));
//1.8之前使用sun.misc.BASE64Encoder(此类没有访问权限在rt.jar中添加访问权限sun/misc/*)
BASE64Encoder base64 new BASE64Encoder();
base64.encode(md5.digest(str.getBytes(utf-8)));数据结构之二叉树实现
树是一种重要的非线性数据结构直观地看它是数据元素在树中称为结点按分支关系组织起来的结构。二叉树Binary Tree是每个节点最多有两个子树的有序树。通常子树被称作“左子树” 和“右子树”。
二叉树算法的排序规则
选择第一个元素作为根节点之后如果元素大于根节点放在右子树如果元素小于根节点则放在左子树最后按照中序遍历的方式进行输出则可以得到排序的结果左-根-右
8、3、10、1、6、14、4、7、13 JDK1.8新特性
Lambda表达式
Lambda表达式也称为闭包是整个Java 8发行版中最受期待的在Java语言层面上的改变Lambda允许把函数作为一个方法的参数函数作为参数传递进方法中或者把代码看成数据。Lambda表达式用于简化JAVA中接口式的匿名内部类。被称为函数式接口的概念。函数式接口就是一个具有一个方法的普通接口。像这样的接口可以被隐式转换为lambda表达式。
语法
(参数1,参数2...) - { ... }没有参数时使用Lambda表达式带参数时使用Lambda表达式代码块中只一句代码时使用Lambda表达式代码块中有多句代码时使用Lambda表达式有返回值的代码块参数中使用final关键字
接口中的默认方法和静态方法
interface A{public default void print(){}public static void method(){}
}默认方法与静态方法并不影响函数式接口的契约可以任意使用