八大基本变量
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