Miscellanies

 控制台输出带颜色字符

        字体颜色30~37        背景颜色40~47        1 加粗        ; 隔开        90~97字体颜色变亮

System.out.println("\033[1;93;45m" + "颜色"+"\033[m");

 

增强for循环

格式

        for(数据类型变量名 : 被遍历的集合(collection)或者数组) {

        执行语句

        }

案例

案例中的array为变量名称可改动

在普通数组中的使用
        int[] array = {1,2,3,4,5,6,7,8,9,0,};
        for (int item : array) {   
            System.out.println(item);   
        } 
在二维数组中的使用
        int array2[][] = {{1,2,3}, {4,5,6}, {7,8,9} };
        for (int arr[] : array2) {
            for (int item : arr) {
                System.out.println(item);
            }
        }
 ArrayList中的使用
        ArrayList<Integer> list1 = new ArrayList<>();
        list1.add(1);
        list1.add(2);
        list1.add(3);
        list1.add(4);
        list1.add(5);
        list1.add(6);
        list1.add(7);
        for(Integer item : list1){
            System.out.println(item);

        }

final关键字

final

作用

        ●final 关键字是最终的意思,可以修饰(类、方法、变量)

        ●修饰类:该类被称为最终类,特点是不能被继承了。

        ●修饰方法: 该方法被称为最终方法,特点是不能被重写了。

        ●修饰变量: 该变量只能被赋值一次。

final修饰变量的注意

        ●final修饰基本类 型的变量,变量存储的数据不能被改变。

        ●final修饰 引用类型的变量,变量存储的地址不能被改变,但地址所指向对象的内容是可以被改变的。

常量

常量

        ●使用了static final修饰的成员变量就被称为常量;

        ●作用:通常用于记录系统的配置信息。

使用常量记录系统配置信息的优势、执行原理

        ●代码可读性更好,可维护性也更好。

        ●程序编译后,常量会被“宏替换”:出现常量的地方全部会被替换成其记住的字面量,这样可以保证使用常量和直接用字面量的性能是一样的。

 方法递归

概述

  • 递归是一种算法,在程序设计语言中广泛应用。
  • 从形式上说:方法调用自身的形式称为方法递归( recursion)。
  • 直接递归:方法自己调用自己。
  • 间接递归:方法调用其他方法,其他方法又回调方法自己。
  • 递归如果没有控制好终止,会出现递归死循环,导致栈内存溢出错误(Stac)。

递归的三要素

  1. 找到递归的公式
  2. 找到递归的终结点
  3. 递归的方向必须走向终结点

字符集

常用字符集

标准ASCII字符集

  • ASCII(American Standard Code for Information Interchange):美国信息交换标准代码,包括了英文、符号等。
  • 标准ASCII使用1个字节存储一个字符,首尾是0,总共可表示128个字符,对英文来说完全够用。

GBK (汉字内码扩展规范,国标)

  • 汉字编码字符集,包含了2万多个汉字等字符, GBK中一个中文字符编码成两个字节的形式存储。
  • 注意:GBK兼容了ASCII字符集。
  •  GBK规定:汉字的第一个字节的第一位必须是1

Unicode字符集(统一码, 也叫万国码)

        Unicode是国际组织制定的,可以容纳世界上所有文字、符号的字符集。

UTF-32
  • 4个字节表示一个字符。
  • 占存储空间,通信效率变低!
  •  基本上不使用。
UTF-8

        ●采取可变长编码方案,共分四个长度区: 1个字节,2个字节, 3个字节,4个字节。

        ●英文字符、数字等只占1个字节(兼容标准ASCI|编码) ,汉字字符占用3个字节。

UTF-8编码方式(二进制)
0XXXXXXX   (ASCII码)
110XXXXX  10XXXXXX
1110XXXX  10XXXXXX  10XXXXXX
11110XXX  10XXXXXX  10XXXXXX 10XXXXXX

        注意:技术人员在开发时都应该使用UTF-8编码!

小结

  • ASCII字符集:只有英文、数字、符号等,占1个字节。
  • GBK字符集:汉字占2个字节,英文、数字占1个字节。
  • UTF-8字符集:汉字占3个字节,英文、数字占1个字节。

注意1:字符编码时使用的字符集,和解码时使用的字符集必须一致,否则会出现乱码。

注意2:英文,数字一般不会乱码,因为很多字符集都兼容了ASCII编码。

编码解码

编码

        编码是把字符按照指定字符集编码成字节。

String提供了如下方法说明
byte[ ] getBytes( )使用平台的默认字符集将该String编码为一系列字节,将结果存储到新的字节数组中
byte[ ] getBytes(String charsetName)使用指定的字符集将该String编码为一系列字节 ,将结果存储到新的字节数组中

解码

        解码是把字节按照指定字符集解码成字符。

String提供了如下方法说明
String(byte[ ] bytes)通过使用平台的默认字符集解码指定的字节数组来构造新的String
String(byte[ ] bytes, String charsetName)通过指定的字符集解码指定的字节数组来构造新的String

一些方法

 math方法
double Math.sqrt(a)将a开平方根
int Math.round(a)将a四舍五入到整数
Math.log(a)以e为底a的对数
Math.log10(a)以10为底a的对数
Math.floor(a)小于a的最大整数
Math.ceil(a)大于a的最大整数
Math.expm1(a)e的a次方-1
Math.expm(a)e的a次方
 字母转换
ch.toUpperCase()将小写字母ch转为大写字母
ch.toLowerCase()将大写字母ch转为小写字母
 控制小数点位数(四舍五入)
利用format
import java.text.DecimalFormat;导包
DecimalFormat df = new DecimalFormat("0.000");设置保留位数(该例子为保留三位小数)
df.format(n)(结果为String型)
        double t1 = 4654.5231;
        double t2 = 456.154
        DecimalFormat df = new DecimalFormat("0.0");
        System.out.println(df.format(new BigDecimal(t1 / t2)));//计算精度更高
利用BigDecimal中的setScale方法
import java.math.BigDecimal;导包
import java.math.RoundingMode;
setScale(int newScale, RoundingMode roundingMode)第一参数表示要保留的小数位数,第二个参数决定保留小数的方式
RoundingMode.UP 向远离0的方向舍入
RoundingMode.FLOOR 向负无穷方向舍入
RoundingMode.DOWN 向零方向舍入
RoundingMode.CEILING向正无穷方向舍入
RoundingMode.HALF_ EVEN向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向下舍入,例如1.55保留一位小数结果为1.5。
RoundingMode.HALF_ UP向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向上舍入,1.55保留一位小数结果为1.6
        double tt = 4654.5231;
        System.out.println(new BigDecimal(tt).setScale(2, RoundingMode.UP));

  • 13
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值