设置classpath
先找当前,再找c:\myclass\jxl.jar;
set classpath=.;c:\myclass\jxl.jar;
标识符
不能以数字开头,不能跟关键字相同。
常量与变量
单精度:float f = 2.3f;
双精度:double d = 2.3;
byte b = 3;
b = b + 2;
/*
b为8位
整数为4个8位
不能相加
(1)自动类型提升:b+2->4个8位,赋给byte出错
(2)强转:b=(byte)(b+2);
*/
运算符
++运算
a = 3;
b = a++;
/*
先赋值,后自加
b=3;
a=4;
*/
int->short出错
short s=3;
s=s+5;//错,报错损失精度
s+=5;//对,自动转换
位运算
(1)3«1=6;相当于3*2^1
(2)6»2=1;相当于6/(2^2)
(3)»右移,最高位为1的话,移位后补1;为0的话补0
(4)»>右移,无论最高位为啥,移位后都补0
(5)6&3=110&011=010=2
(6)异或同一个数两次,还是那个数
(7)乘法用位运算:2x8 = 2«3
函数重载
在同一个类中,允许存在一个以上的同名函数,只要参数个数、参数类型不一样即可重载。
public static int add(int x, int y)
public static int add(int x, int y, int z)//重载
public static void add(int x,int y)//没有重载
public static boolean add(int x)//重载
数组
(1)int[] x=new int[3];
(2)int[] arr=new int[]{1,3,5,7,9};
(3)置换:swap(arr, x, y)
int swap(int[] arr,int x,int y)
{
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
(4)10进制->16进制
public static void toHex(int num)
{
StringBuffer sb = new StringBuffer();
for(int x=0;x<8;x++)
{
int temp=num & 15;
if(temp>9)
sb.append((char)(temp-10+'A'));
else
sb.append(temp);
num=num>>>4;
}
System.out.println(sb.reverse());
}
String转int
有2种方法:
1) int i = Integer.parseInt([String]);
2) int i = Integer.valueOf(my_str).intValue();
int转String
有3种方法:
1) String s = String.valueOf(i);
2) String s = Integer.toString(i);
3) String s = “” + i;
初始化二维数组3种方法
//第一种方式
int a[][]={...};
//第二种方式
int[][] ints = new int[4][2];
ints[i][j] =__; //分别赋值
//第三种方式:第二维的长度可以动态申请
int[][] arr3 = new int[5][];//五行的长度
for(int i=0; i<arr3.length; ++i)
{
arr3[i]=new int[i+1];//列的长度每次都变化。每次都要重新申请空间(长度)
for(int j=0; j<arr3[i].length; ++j)
arr3[i][j]= i+j;
}
List集合
添加、获取、删除元素
import java.util.ArrayList;
import java.util.List;
public class HelloWorld
{
public static void main(String[] args)
{
List<String> person=new ArrayList<>();
person.add("jackie");//索引为0 //.add(e)
person.add("peter");//索引为1
person.add("annie");//索引为2
person.add("martin");//索引为3
person.add("marry");//索引为4
person.remove(3); //.remove(index)
person.remove("marry");//.remove(Object o)
String per="";
per=person.get(1);
System.out.println(per);//.get(index)
for (int i = 0; i < person.size(); i++) {
System.out.println(person.get(i));//.get(index)
}
}
}
是否包含某个元素
List<String> fruits=new ArrayList<>();
fruits.add("苹果");
fruits.add("香蕉");
fruits.add("桃子");
//for循环遍历list
for (int i = 0; i < fruits.size(); i++) {
System.out.println(fruits.get(i));
}
String appleString="苹果";
//true or false
System.out.println("fruits中是否包含苹果:"+fruits.contains(appleString));
if (fruits.contains(appleString)) {
System.out.println("我喜欢吃苹果");
}else {
System.out.println("我不开心");
}
根据索引将元素数值替换
String a="白龙马", b="沙和尚", c="八戒", d="唐僧", e="悟空";
List<String> people=new ArrayList<>();
people.add(a);
people.add(b);
people.add(c);
people.set(0, d);//.set(index, element);//将d唐僧放到list中索引为0的位置,替换a白龙马
people.add(1, e);//.add(index, element);//将e悟空放到list中索引为1的位置,原来位置的b沙和尚后移一位
//增强for循环遍历list
for(String str:people){
System.out.println(str);
查看元素的索引
List<String> names=new ArrayList<>();
names.add("刘备");//索引为0
names.add("关羽");//索引为1
names.add("张飞");//索引为2
names.add("刘备");//索引为3
names.add("张飞");//索引为4
System.out.println(names.indexOf("刘备"));
System.out.println(names.lastIndexOf("刘备"));
System.out.println(names.indexOf("张飞"));
System.out.println(names.lastIndexOf("张飞"));
根据元素索引位置进行的判断
if (names.indexOf("刘备")==0) {
System.out.println("刘备在这里");
}else if (names.lastIndexOf("刘备")==3) {
System.out.println("刘备在那里");
}else {
System.out.println("刘备到底在哪里?");
}
利用索引生成新的集合(截取)
List<String> phone=new ArrayList<>();
phone.add("三星");//索引为0
phone.add("苹果");//索引为1
phone.add("锤子");//索引为2
phone.add("华为");//索引为3
phone.add("小米");//索引为4
//原list进行遍历
for(String pho:phone){
System.out.println(pho);
}
//生成新list
phone=phone.subList(1, 4);
//.subList(fromIndex, toIndex)
//利用索引1-4的对象重新生成一个list,但是不包含索引为4的元素,4-1=3
for (int i = 0; i < phone.size(); i++) {
// phone.size() 该方法得到list中的元素数的和
System.out.println("新的list包含的元素是"+phone.get(i));
}
对比两个list中的所有元素
//1.
if (person.equals(fruits)) {
System.out.println("两个list中的所有元素相同");
}else {
System.out.println("两个list中的所有元素不一样");
}
//2.
if (person.hashCode()==fruits.hashCode()) {
System.out.println("我们相同");
}else {
System.out.println("我们不一样");
}
判断list是否为空
if (person.isEmpty()) {
System.out.println("空的");
}else {
System.out.println("不是空的");
}
返回Iterator集合对象
System.out.println("返回Iterator集合对象:"+person.iterator());
将集合转换为字符串
String liString="";
liString=person.toString();
System.out.println("将集合转换为字符串:"+liString);
将集合转换为数组
System.out.println("将集合转换为数组:"+person.toArray());
集合类型转换
//1.默认类型
List<Object> listsStrings=new ArrayList<>();
for (int i = 0; i < person.size(); i++) {
listsStrings.add(person.get(i));
}
//2.指定类型
List<StringBuffer> lst=new ArrayList<>();
for(String string:person){
lst.add(StringBuffer(string));
}
去重复
List<String> lst1=new ArrayList<>();
lst1.add("aa");
lst1.add("dd");
lst1.add("ss");
lst1.add("aa");
lst1.add("ss");
//方法 1
for (int i = 0; i <lst1.size()-1; i++) {
for (int j = lst1.size()-1; j >i; j--) {
if (lst1.get(j).equals(lst1.get(i))) {
lst1.remove(j);
}
}
}
System.out.println(lst1);
//方法 2
List<String> lst2=new ArrayList<>();
for (String s:lst1) {
if (Collections.frequency(lst2, s)<1) {
lst2.add(s);
}
}
System.out.println(lst2);