美文网首页
java小结

java小结

作者: 夜幕繁华 | 来源:发表于2016-11-29 10:27 被阅读0次

    八大基本变量

    boolean--1bit

    byte--8bit

    short--16bit

    int--32bit

    long--64bit

    char--16bit

    float--32bit

    double--64bit

    条件和循环语句

    1.if 语句

    语法说明

    if 是该语句中的关键字,后续紧跟一对小括号,该对小括号任何时候不能省略,小括号的内部是具体的条件,语法上要求该表达式结果为boolean 类型。后续为功能的代码,也就是当条件成立时执行的代码,在程序书写时,一般为了直观的表达包含关系,功能代码一般需要缩进。

    注意:1.if(条件表达式)后续一般不书写分号

    if 语句的执行流程为:如果条件表达式成立,则执行功能代码,如果条件表达式不成立,则不执行后续的功能代码。

    if-else 语句

    if-else 语句实现了封闭的条件,在程序中使用的更加常见。其中else关键字的作用是“否则”,即条件不成立的情况。

    语法说明:其中前面的部分和if 语句一样,else 部分后面是功能的代码

    执行顺序:如果条件成立,则执行if 语句中的功能代码,否则执行else 中的功能代码。当程序中有多个if 时,else 语句和最近的if 匹配。

    switch 语句

    switch 关键字的中文意思是开关、转换的意思,switch 语句在条件语句中特别适合做一组变量相等的判断,在结构上比if 语句要清晰很多。

    当表达式的值和对应case 语句后的值相同时,既从该位置开始向下执行,一直执行到switch 语句的结束,在执行中,如果遇到break 语句,则结束switch 语句的执行。

    while 循环:

    在执行时,如果布尔表达式的结果为真,则循环中的动作将被执行。这将继续下去,只要该表达式的结果为真。

    do...while 循环:

    do ... while循环类似于while循环,不同的是一个do ... while循环是保证至少执行一次。

    for 循环:

    for(初始化步骤;布尔表达,循环条件;循环变量递增)

    for循环是一个循环控制结构,可以有效地编写需要执行的特定次数的循环。

    知道多少次的任务是要重复一个for循环是有好处的。

    步骤:

    初始化步骤首先被执行,并且仅一次。这个步骤可声明和初始化任何循环控制变量。不需要把一个声明在这里,只要一个分号出现。

    接下来,布尔表达式求值。如果是 true,则执行循环体。如果是 false,则循环体不执行和流程控制的跳转到下一个语句过去的for循环。

    之后循环体在for循环执行时,控制流程跳转备份到更新语句。该语句允许更新任何循环控制变量。这个语句可以留空,只要一个分号出现的布尔表达式之后。

    布尔表达式现在再次评估计算。如果是 true,循环执行,并重复这个过程(循环体,然后更新的步骤,然后布尔表达式)。之后,布尔表达式为 false,则循环终止。

    foreach:

    声明: 新声明块变量,这是一种与正在访问数组中的元素兼容的。变量将是可利用的块内并且它的值将是相同的作为当前的数组元素。

    表达: 这个计算结果完成需要循环数组。表达式可以是一个数组变量或方法调用返回一个数组。

    break关键字:

    关键字break是用来停止整个循环。 break关键字必须使用任何循环或switch语句中。

    关键字break将停止最内层循环的执行,并开始执行的下一行代码的程序段后。

    continue 关键字:

    continue关键字可以在任一环的控制结构可以使用。它使循环立即跳转到循环的下一次迭代.

    在for循环中,continue关键字会导致流程控制的立即跳转到更新语句。

    在一个while循环或do/while循环,流控制的立即跳转到布尔表达式。

    格式化输出

    1.DecimalFormat

    DecimalFormat是NumberFormat的一个具体子类,用于格式化十进制数字

    符号含义

    0 一个数字,若不存在,用0填充

    # 一个数字,不包括 0

    . 小数的分隔符的占位符

    , 分组分隔符的占位符 如:#,# 那么10会变为1,0

    ; 分隔格式。

    - 缺省负数前缀。

    % 乘以 100 和作为百分比显示

    ? 乘以 1000 和作为千进制货币符显示;用货币符号代替;如果双写,用

    国际货币符号代替。如果出现在一个模式中,用货币十进制分隔符代

    替十进制分隔符。

    X 前缀或后缀中使用的任何其它字符,用来引用前缀或后缀中的特殊字符。

    forExamble

    DecimalFormat df1 = new DecimalFormat("0.0");

    DecimalFormat df2 = new DecimalFormat("#.#");

    DecimalFormat df3 = new DecimalFormat("000.000");

    DecimalFormat df4 = new DecimalFormat("###.###");

    System.out.println(df1.format(12.34));

    System.out.println(df2.format(12.34));

    System.out.println(df3.format(12.34));

    System.out.println(df4.format(12.34));

    结果:

    12.3

    12.3

    012.340

    12.34

    2.printf

    参数 输出格式:指定数据输出时的格式;

    输出字符串:指定要输出的数据。

    格式替代符

    %b 相对应的参数被视为含有要被处理的转义序列之字符串。

    %c ASCII字符。显示相对应参数的第一个字符

    %d, %i 十进制整数

    %e, %E, %f 浮点格式

    %g %e或%f转换,看哪一个较短,则删除结尾的零

    %G %E或%f转换,看哪一个较短,则删除结尾的零

    %o 不带正负号的八进制值 %s 字符串

    %u 不带正负号的十进制值

    %x 不带正负号的十六进制值,使用a至f表示10至15

    %X 不带正负号的十六进制值,使用A至F表示10至15

    常用类型

    1.Arrays

    Arrays静态方法:

    asList(T... a)                                  返回一个列表

    binarySearch()                               二分查找,        基本类型都可以

    copyOf                                          复制数组

    copyOfRange()                      复制特定范围的数组

    equals()                                       比较是否相等

    fill()                                              填充数组

    parallelSort()                          指定范围的排序,并行计算,速度较快

    sort()                                     排序,串行计算

    toString                                       转换为字符串

    附:数组声明的三种方式

    1) int[] nus={1,2,3,5};

    2) String[] names=new String[3];

    3)date[] dates=new Date[] {new Date(),new Date()};

    String

    charAt(int index)返回字符串中第index个字符;

    length()返回字符串的长度;

     indexOf(String str)返回字符串中第一次出现str的位置;

     indexOf(String str,int fromIndex)返回字符串从fromIndex开始第一次出现str的位置;

     equalsIgnoreCase(String another)比较字符串与another是否一样(忽略大小写);

    replace(char oldchar,char newChar)在字符串中用newChar字符替换oldChar字符

    startsWith(String prefix)判断字符串是否以prefix字符串开头;

    endsWith(String suffix)判断一个字符串是否以suffix字符串结尾;

     toUpperCase()返回一个字符串为该字符串的大写形式;

    public String toLowerCase()返回一个字符串为该字符串的小写形式

    substring(int beginIndex)返回该字符串从beginIndex开始到结尾的子字符串;

     substring(int beginIndex,int endIndex)返回该字符串从beginIndex开始到endsIndex结尾的子字符串

     trim()返回该字符串去掉开头和结尾空格后的字符串

    split(String regex)将一个字符串按照指定的分隔符分隔,返回分隔后的字符串数组

    StringBuffer和StringBuilderh和String

    String:字符串常量

    StringBuffer:字符创变量,线程安全的

    StringBuilder:字符创变量,线程非安全的

    三者在执行速度方面的比较:StringBuilder >  StringBuffer  >  String

    String类型是不可改变的对象了,由于这种机制,每当用String操作字符串时,实际上是在不断的创建新的对象,而原来的对象就会变为垃圾被GC回收掉,从而导致效率低。

    而StringBuffer与StringBuilder就不一样了,他们是字符串变量,是可改变的对象,每当我们用它们对字符串做操作时,实际上是在一个对象上操作的,这样就不会像String一样创建一些而外的对象进行操作了,当然速度就快了。

    当我们在字符串缓冲去被多个线程使用是,JVM不能保证StringBuilder的操作是安全的,虽然他的速度最快,但是可以保证StringBuffer是可以正确操作的。当然大多数情况下就是我们是在单线程下进行的操作,所以大多数情况下是建议用StringBuilder而不用StringBuffer的,就是速度的原因。

    对于三者使用的总结

     1.如果要操作少量的数据用 = String

    2.单线程操作字符串缓冲区 下操作大量数据 = StringBuilder

    3.多线程操作字符串缓冲区 下操作大量数据 = StringBuffer

    相关文章

      网友评论

          本文标题:java小结

          本文链接:https://www.haomeiwen.com/subject/gelnpttx.html