二进制,十进制,八进制,十六进制
基本数据类型:byte、short、int、long、float、double、char、boolean
栈空间:存取数据的效率高;线进后出;数量少
堆空间:效率低,存储位置随机分配,存储大容量数据
寄存器-Java不可直接控制
变量;常亮;字面量(存放的具体的数据)
变量名不使用首字母大写,sumScore
剩下的内容以后再程序中就学会了,不会再查
和c++一样 ==;!=;<;>;>=;<=
import java.util.Scanner; public class GenerateDemo02 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc =new Scanner(System.in); System.out.println("输入分数:"); Integer score = sc.nextInt(); //在这里进行判断 boolean isPass = score>=60; System.out.println(score +"及格:" + isPass); }
&;&&;|;||;……
和c++相同;
public class GenerateDemo02 { public static void main(String[] args) { // TODO Auto-generated method stub int score = 4; switch (score) { case 5: score++; case 4: score++; case 3: score++; // 从4进入到这里出来,因为没有break标识!!! break; case 2: score++; default: System.out.println(score); } } }
输出大写字母对应的Unicode码,循环while;do while;for。
public class GenerateDemo02 { public static void main(String[] args) { // TODO Auto-generated method stub int i = 65; while (i <= 65 + 25) { System.out.println((char) i + ":" + i); i++; } // 另一种实现方法 // char c = 'A'; // while (c <= 'Z') { // System.out.println(c + ":" + (int) c); // c++;} } }
数组声明的两种形式,例如:
int arrayInt[]; int[] arryaInt;
public class GenerateDemo02 { public static void main(String[] args) { // TODO Auto-generated method stub //声明 int arrayDemo01[]; int[] arrayDemo02; //使用new初始化 arrayDemo01 = new int[3]; arrayDemo02 = new int[5]; //声明后直接初始化 int[] arrayDemo03 = new int[7]; //静态初始化 int score[] = {1,2,3,4}; //length判断长度 for (int i = 0; i < arrayDemo01.length; i++) { System.out.println(i); } } }
直接赋值(使用比较多)
String str = “hello”;
使用关键字赋值
String str = new String("hello");
String类型比较,str == str1 ?
str.equals(str1);
String字符串内容不可更改,但是指向可以改变
str.length()表示String字符串长度
str.toCharArray()标尺字符串转换为数组
String str = "jikexueyuan"; char data[] = str.toCharArray();
charAt()表示从字符串中取出指定位置的字符
String str = "jikexueyuan"; //得到第一个字符->j String Str01 = str.charAt(0);
getBytes()表示字符串与byte数组的转换
String str = "jikexueyuan"; //得到第一个字符->j byte by = str.getBytes();
indexOf()表示指定字符在字符串中的位置
String str = "[email protected]"; //返回@的位置数,结果为11 int i = str.indexOf("@");
trim()表示去掉字符串的前后空格
String str = " nihao "; String str01 = str.trim();
subString()表示从字符串中取出子字符串
toLowerCase() toUpperCase()表示大小写转换
endsWith() startWith()表示判断开头结尾的字符串
replace()表示替换String字符串中的一个字符
和String相比,Stringbuff能进行更改里面的字符串
常用方法:
append(); ->后面附加
insert();->追加;
replace(); ->替换;
indexOf();
应用:和String相对,如果使用string对象存储不断变化的变量时,会不断开辟空间。
public class GenerateDemo02 { public static void main(String[] args) { // TODO Auto-generated method stub StringBuffer sbf = new StringBuffer(); sbf.append("jikexueyuan"); for(int i = 0; i < 100; i++){ //在StringBuff对象后面添加~,而不是像String那样重新开辟空间 sbf.append(i); } //使用toString()打印String对象。 System.out.println(sbf.toString()); } }
String StringBuffer StringBuilder 对比:
1.jdk版本支持:
StringBuilder JDK1.5以后版本支持
2.线程安全:
StringBuffer 线程安全
StringBuilder 线程不安全
Java.lang.StringBuffer 线程安全的可变字符序列。类似于 String 的字符串缓冲区,但不能修改。可将字符串缓冲区安全地用于多个线程。可以在必要时对这些方法进行同步,因此任意特定实例上的所有操作就好像是以串行顺序发生的,该顺序与所涉及的每个线程进行的方法调用顺序一致。
每个字符串缓冲区都有一定的容量。只要字符串缓冲区所包含的字符序列的长度没有超出此容量,就无需分配新的内部缓冲区数组。如果内部缓冲区溢出,则此容量 自动增大。从 JDK 5.0 开始,为该类增添了一个单个线程使用的等价类,即 StringBuilder 。与该类相比,通常应该优先使用 StringBuilder 类,因为它支持所有相同的操作,但由于它不执行同步,所以速度更快。 但是如果将 StringBuilder 的实例用于多个线程是不安全的。需要这样的同步,则建议使用 StringBuffer 。
3.速度:
一般情况下,速度从快到慢:StringBuilder>StringBuffer>String.当需要在循环中多次使用字符串拼接时,建 议使用StringBuilder或StringBuffer.当数量级在百万级(这里可能不准确)时,StringBuilder的速度会体现出来.