这里主要总结:Number 类、Character 类、String 类、StringBuffer 和 StringBuilder 类
java循环结构比较简单,这里只总结Java 增强 for 循环。

1. Java 增强 for 循环

Java5 引入了一种主要用于数组的增强型 for 循环。
Java 增强 for 循环语法格式如下:

for(声明语句 : 表达式)
{//代码句子
}

声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。
表达式:表达式是要访问的数组名,或者是返回值为数组的方法。

public class Test {public static void main(String args[]){int [] numbers = {10, 20, 30, 40, 50};for(int x : numbers ){System.out.print( x );System.out.print(",");}System.out.print("\n");String [] names ={"James", "Larry", "Tom", "Lacy"};for( String name : names ) {System.out.print( name );System.out.print(",");}}
}

2. Java Number 类

在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类型的情形。为了解决这个问题,Java 语言为每一个内置数据类型提供了对应的包装类.

所有的包装类(Integer、Long、Byte、Double、Float、Short)都是抽象类 Number 的子类。

这种由编译器特别支持的包装称为装箱,所以当内置数据类型被当作对象使用的时候,编译器会把内置类型装箱为包装类。相似的,编译器也可以把一个对象拆箱为内置类型。Number 类属于 java.lang 包。

/**
* java中的自动装箱与拆箱
* 简单一点说,装箱就是自动将基本数据类型转换为包装器类型;拆箱就是自动将包装器类型转换为基本数据类型。
*/
public class Number {public static void main(String[] args) {/**Integer i1 = 128;  // 装箱,相当于 Integer.valueOf(128);int t = i1; //相当于 i1.intValue() 拆箱System.out.println(t);*//**对于–128到127(默认是127)之间的值,被装箱后,会被放在内存里进行重用但是如果超出了这个值,系统会重新new 一个对象*/Integer i1 = 200;Integer i2 = 200;/**注意 == 与 equals的区别== 它比较的是对象的地址equals 比较的是对象的内容*/if(i1==i2) {System.out.println("true");} else {System.out.println("false");}}
}

注意:

== 它比较的是对象的地址
equals 比较的是对象的内容

3. Character 类

Character类提供了一系列方法来操纵字符。你可以使用Character的构造方法创建一个Character类对象,例如:

Character ch = new Character('a');

在某些情况下,Java编译器会自动创建一个Character对象。
例如,将一个char类型的参数传递给需要一个Character类型参数的方法时,那么编译器会自动地将char类型参数转换为Character对象。 这种特征称为装箱,反过来称为拆箱。

// 原始字符 'a' 装箱到 Character 对象 ch 中
Character ch = 'a';// 原始字符 'x' 用 test 方法装箱
// 返回拆箱的值到 'c'
char c = test('x');

4. String 类

4.1 创建字符串

创建字符串最简单的方式如下:

String greeting = "菜鸟教程";

在代码中遇到字符串常量时,这里的值是 “菜鸟教程”“,编译器会使用该值创建一个 String 对象。
和其它对象一样,可以使用关键字和构造方法来创建 String 对象。

public class StringDemo{public static void main(String args[]){char[] helloArray = { 'r', 'u', 'n', 'o', 'o', 'b'};String helloString = new String(helloArray);  System.out.println( helloString );}
}

以上实例编译运行结果如下:

runoob

注意:
String 类是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了。
如果需要对字符串做很多修改,那么应该选择使用 StringBuffer & StringBuilder 类。

String 类是不可改变的解析,例如:

String s = "Google";
System.out.println("s = " + s);s = "Runoob";
System.out.println("s = " + s);

输出结果为:

Google
Runoob

从结果上看是改变了,但为什么门说String对象是不可变的呢?
原因在于实例中的 s 只是一个 String 对象的引用,并不是对象本身,当执行 s = “Runoob”; 创建了一个新的对象 “Runoob”,而原来的 “Google” 还存在于内存中。

4.2 length()方法,length属性和size()的方法的区别:

1.length()方法是针对字符串来说的,要求一个字符串的长度就要用到它的length()方法;
2.length属性是针对Java中的数组来说的,要求数组的长度可以用其length属性;
3.java中的size()方法是针对泛型集合说的,如果想看这个泛型有多少个元素,就调用此方法来查看!

4.3

1.对整数进行格式化:%[index$][标识][最小宽度]转换方式
格式化字符串由4部分组成,特殊的格式常以%index$开头,index从1开始取值,表示将第index个参数拿进来进行格式化,[最小宽度]的含义也很好理解,就是最终该整数转化的字符串最少包含多少位数字。剩下2个部分的含义:
标识:

‘-’ 在最小宽度内左对齐,不可以与”用0填充”同时使用
‘#’ 只适用于8进制和16进制,8进制时在结果前面增加一个0,16进制时在结果前面增加0x
‘+’ 结果总是包括一个符号(一般情况下只适用于10进制,若对象为BigInteger才可以用于8进制和16进制)
’ ’ 正值前加空格,负值前加负号(一般情况下只适用于10进制,若对象为BigInteger才可以用于8进制和16进制)
‘0’ 结果将用零来填充
‘,’ 只适用于10进制,每3位数字之间用”,”分隔
‘(’ 若参数是负数,则结果中不添加负号而是用圆括号把数字括起来(同’+’具有同样的限制)
转换方式:
d-十进制 o-八进制 x或X-十六进制
上面的说明过于枯燥,我们来看几个具体的例子。需要特别注意的一点是:大部分标识字符可以同时使用。

System.out.println(String.format("%1$,09d", -3123));
System.out.println(String.format("%1$9d", -31));
System.out.println(String.format("%1$-9d", -31));
System.out.println(String.format("%1$(9d", -31));
System.out.println(String.format("%1$#9x", 5689));
//结果为:
//-0003,123
// -31
//-31
// (31)
// 0x1639 

2.对浮点数进行格式化:%[index$][标识][最少宽度][.精度]转换方式
我们可以看到,浮点数的转换多了一个”精度”选项,可以控制小数点后面的位数。
标识:

‘-’ 在最小宽度内左对齐,不可以与”用0填充”同时使用
‘+’ 结果总是包括一个符号
’ ’ 正值前加空格,负值前加负号
‘0’ 结果将用零来填充
‘,’ 每3位数字之间用”,”分隔(只适用于fgG的转换)
‘(’ 若参数是负数,则结果中不添加负号而是用圆括号把数字括起来(只适用于eEfgG的转换)
转换方式:
‘e’, ‘E’ – 结果被格式化为用计算机科学记数法表示的十进制数
‘f’ – 结果被格式化为十进制普通表示方式
‘g’, ‘G’ – 根据具体情况,自动选择用普通表示方式还是科学计数法方式
‘a’, ‘A’ – 结果被格式化为带有效位数和指数的十六进制浮点数

3.对字符进行格式化:
对字符进行格式化是非常简单的,c表示字符,标识中’-‘表示左对齐,其他就没什么了。

5. StringBuffer 和 StringBuilder 类

当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。
和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。
StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。
由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。

总结:
Java 中 StringBuffer 和 String 是有一定的区别的,首先,String 是被 final 修饰的,他的长度是不可变的,就算调用 String 的
concat 方法,那也是把字符串拼接起来并重新创建一个对象,把拼接后的 String 的值赋给新创建的对象,而 StringBuffer 的长度是可变的,调用StringBuffer 的 append 方法,来改变 StringBuffer 的长度,并且,相比较于 StringBuffer,String 一旦发生长度变化,是非常耗费内存的!

摘自:http://www.runoob.com/java/java-tutorial.html

java 循环结构和常用的类 总结笔记相关推荐

  1. java循环结构教程

    循环的语法我发一下: while( 布尔表达式 ) {//循环内容} do {//代码语句}while(布尔表达式); for(初始化; 布尔表达式; 更新) {//代码语句} 今天录制了一下java ...

  2. (转)JAVA 十六个常用工具类

    (转)JAVA 十六个常用工具类 一. org.apache.commons.io.IOUtils closeQuietly 关闭一个IO流.socket.或者selector且不抛出异常.通常放在f ...

  3. JAVA实现 PDF转换 常用工具类(html转PDF、PDF添加页码、PDF文件下载、PDF添加印章或者水印)

    JAVA实现 PDF转换 常用工具类(html转PDF.PDF添加页码.PDF文件下载.PDF添加印章或者水印)可直接使用 package com.bestvike.util; import com. ...

  4. Java 循环结构 for while

    Java 循环结构 for, while 及 do-while 顺序结构的程序语句只能被执行一次.如果您想要同样的操作执行多次,,就需要使用循环结构. Java中有三种主要的循环结构: • while ...

  5. c 结构体在声明时赋值_Java基础知识 初识Java 循环结构进阶 数组 数据类型 各种运算符...

    今天给大家带来的是初级Java基础部分的知识:包括初始Java.变量.常量.数据类型.运算符.各种选择结构.循环结构.数组等Java的基础语法部分!最后还有****循环结构的进阶****,步骤超详细, ...

  6. 猿创征文|java循环结构

    java有三种循环结构,分别是for循环结构.while循环结构.do-while选择结构,先来说说for循环. for循环结构 for循环结构的基本写法如下: for(初始化语句;条件判断语句;条件 ...

  7. Java 循环结构 - for, while 及 do...while

    顺序结构的程序语句只能被执行一次.如果您想要同样的操作执行多次,,就需要使用循环结构. Java中有三种主要的循环结构: while循环 do-while循环 for循环 在Java5中引入了一种主要 ...

  8. Java循环结构编程练习

    继续发些Java学习过程中的编程练习. 1.编程作业 猜字游戏:猜一个介于1到10之间的数字,然后将猜测的值与实际值继续比较,并给出提示,以便能更接近实际值,直到猜中为止. 2.编程要点分析 (1)随 ...

  9. Java循环结构与条件语句

    循环与条件 前言 一.循环结构 1.while循环 2.do...while 3.for循环 3.1 简单for循环 3.1 foreach(增强for循环) 二.条件语句 1.if...else 2 ...

最新文章

  1. TCP编程函数和步骤
  2. 【第41题】【062题库】2019年OCP认证062考试新题
  3. [Winform]默认以管理员身份运行程序
  4. openstack常用命令及控制节点端口一览
  5. 什么是Scanner?next()和hasNext() ? nextLine()和hasNextLine()?
  6. Python Tricks(十九)—— switch 的实现
  7. 有哪些越早知道越好的人生经验?
  8. anaconda安装好tensorflow后,无法在jupyter notebook上使用的解决方法
  9. Pandas 文本数据方法 capitalize( ) lower( ) upper( )
  10. Java和web前端,IT新人该如何选择?
  11. 解读全球热点,传递科研进展,这份AI内参要承包你的AI信息源
  12. 如何用c#来制作一个activeX控件或类似的东西
  13. 三菱gxworks3安装失败_三菱gx works3下载 Gx Works3(三菱PLC编程软件) v1.031h 中文安装版(附安装教程+序列号) 下载-脚本之家...
  14. oracle清空回收站指定表,oracle 删除表结构及清空回收站
  15. nginx+php 完成 kod云搭建(ansible使用变量)
  16. 用javascript的正则表达式来验证Email地址是否格式正确
  17. Zynga重返公有云 是否大势所趋
  18. web自动化测试 -- katalon recorder
  19. Redis Eviction policies (驱逐策略)
  20. 广东机电职业技术学校计算机怎么样,公办|【广东机电职业技术学院】录取分数/学校环境、宿舍介绍...

热门文章

  1. VTK:几何对象之QuadraticHexahedron
  2. OpenCV展开二维相位图
  3. OpenGL HDR色调映射的实例
  4. C语言结构体与联合体
  5. C++这三点对你很重要
  6. guibuilder 皮肤_和平精英返场皮肤投票排名介绍-返场皮肤哪个好
  7. 「C++: draft」一张图弄懂C++指针(*)和引用()以及深拷贝、浅拷贝
  8. 本地编译Hadoop2.8.0源码总结和问题解决(转自:http://blog.csdn.net/young_kim1/article/details/50324345)
  9. 21_Android中常见对话框,光传感器,通过重力感应器编写出指南针应用,帧动画,通过Jav代码的方式编写补间动画,通过XML的方式编写补间动画
  10. 3线程的终止方式,线程属性,NPTL