一、简单介绍 1、jdk、jre 2、Java代码规范 a、类、方法的注释,要以javadoc的方式来写 public class Hello{public static void main(St
public class Hello{public static void main(String[]args){System.out.println("hello,world!!!");}}
是给代码的维护者看的,着重告诉读者为什么这样写,如何修改等。public class Hello{public static void main(String[]args){//此句为了测试是否能正常输出System.out.println("hello,world!!!");}}
DOS:Disk Operating System磁盘操作系统
dir 查看当前目录dir d:\abc\hello 查看d盘hello的目录
cd /D c: 切换到c盘,/D为命令
cd d:\abc\hello 绝对路径切换cd ..\..\abc\hello 相对路径切换
cd ..
cd \
tree
创建目录:md删除目录:rd拷贝文件:copy删除文件:del输入内容到文件:echotype剪切:move
1、编写Java的源代码2、javac 编译,得到对应的 .class 字节码文件3、java 运行,本质就是把 .class加载到JVM 运行。
变量 是程序的基本组成单位。
变量相当于内存中一个数据存储空间的表示。可以把变量看作是一个房间的门牌号,通过门牌号可以找到房间,而通过变量名可以访问到变量(值)。使用步骤:1》声明变量 2》赋值。
-Java数据类型分为两大类:基本类型,引用类型。
当把具体的数赋值给byte时:①先判断该数是否在byte范围内,若是就可以。
byte b=1;byte b1=2;short s=1;short s1=b+b1+s;//错byte b2=b+b1+s;//错int i=b+b1+s;//正确
算术运算符是对数值类型的变量进行运算的,在java程序中使用的非常多。
a % b = a - a / b * b;eg:10 % 3= 10 - 10 / 3 * 3;//结果为:1-10 % 3= -10 - (-10) / 3 * 3;//结果为:-1判断符号:除数为负,结果为负。
//获取键盘输入。注意:别忘记导包:java.util.ScannerScanner inp=new Scanner(System.in);System.out.println("阁下想打印多少行?");int rowNum=inp.nextInt();//接收要打印的行数//开始打印想要的行数for(int i=1;i<=rowNum;i++){for(int k=1;k<=(rowNum-i);k++){//打印空格System.out.print(" ");}for(int j=1;j<=(2*i-1);j++){//打印*System.out.print("*");}System.out.println();//每次循环换行}
//2、打印空心等腰三角形System.out.println("阁下想打印多少行?"); rowNum=inp.nextInt();//接收要打印的行数//开始打印想要的行数for(int i=1;i<=rowNum;i++){for(int k=1;k<=(rowNum-i);k++){//打印空格System.out.print(" ");}for(int j=1;j<=(2*i-1);j++){//打印*if(j==1 || j==(2*i-1) || i==rowNum){System.out.print("*");}else{System.out.print(" ");}}System.out.println();//每次循环换行}
//3、打印菱形for(int i=1;i<=rowNum;i++){for(int k=1;k<=(rowNum-i);k++){//打印空格System.out.print(" ");}for(int j=1;j<=(2*i-1);j++){//打印*System.out.print("*");}System.out.println();//每次循环换行}//菱形下半部分for(int i=rowNum-1;i>=1;i--){for(int k=1;k<=(rowNum-i);k++){//打印空格System.out.print(" ");}for(int j=1;j<=(2*i-1);j++){//打印*System.out.print("*");}System.out.println();//每次循环换行}
System.out.println("阁下想打印多少行?"); rowNum=inp.nextInt();//接收要打印的行数//开始打印想要的行数for(int i=1;i<=rowNum;i++){for(int k=1;k<=(rowNum-i);k++){//打印空格System.out.print(" ");}for(int j=1;j<=(2*i-1);j++){//打印*if(j==1 || j==(2*i-1)){System.out.print("*");}else{System.out.print(" ");}}System.out.println();//每次循环换行}for(int i=rowNum-1;i>=1;i--){for(int k=1;k<=(rowNum-i);k++){//打印空格System.out.print(" ");}for(int j=1;j<=(2*i-1);j++){//打印*if(j==1 || j==(2*i-1) || i==rowNum){System.out.print("*");}else{System.out.print(" ");}}System.out.println();//每次循环换行}
//1)1-100以内的数求和,求出当和第一次大于20的当前数【for+break】int sum=0;//接收和liu:for(int i=1;i<=100;i++){sum+=i;if(sum>=20){System.out.println("累加到20的当前数:"+i);break liu;}}//)实现登录验证,有3次机会,如果用户名为"丁真”,密码"666"提示登录成功,//否则提示还有几次机会,请使用for+break完成String name="";String pwd="";for(int i=1;i<=3;i++){System.out.print("请输入用户名:");name=inp.next();System.out.print("\n请输入密码:");pwd=inp.next();//判断if(name.equals("丁真") && "666".equals(pwd)){System.out.println("恭喜【"+name+"】登陆成功!!");break;}//判断是否已经是第三次输错了if(i==3){System.out.println("当前用户已被锁定,请稍后再试!!");}else{System.out.println("用户名或密码输入有误!还有【"+(3-i)+"】次机会");}}
//1、第一题char []ch=new char[26];for(int i=0;i<ch.length;i++){//循环26次ch[i]=(char)('A'+i);//'A'+i 是int,需要强转}System.out.println("=======打印如下=====");for(int i=0;i<ch.length;i++){System.out.print(ch[i]+" ");}//第二题int [] arr={4,-1,9,10,23};int max=arr[0];//假定第一个元素为最大值int maxIndex=0;//索引for(int i=1;i<arr.length;i++){//从下标1开始遍历if(arr[i]>max){//如果max 小于 当前元素时max=arr[i];//把当前元素 赋值给 maxmaxIndex=i;//记录当前元素下标}}System.out.println("最大值为:"+max+"最大值的下标为:"+maxIndex);
//1、对数组进行扩容//对数组 int arr[]={1,2,3};实现扩容操作int arr[]={1,2,3};//初始数组int newArr[];//新数组用来扩容使用char ch=' ';//用来接收用户的选择int num=0;//用来输入的整数//使用while循环进行连续增加do{//当用户不想弄了时结束System.out.println("数组的数据为:");for(int i=0;i<arr.length;i++){System.out.print(arr[i]+" ");}System.out.println("\n是否进行扩容?y/n");ch=inp.next().charAt(0);//判断if(ch=='y'){//进行扩容时System.out.println("请输入要添加的整数:");num=inp.nextInt();newArr=new int[arr.length+1];//新数组比旧数组大一个//把旧数组的数据弄到新数组上for(int i=0;i<arr.length;i++){newArr[i]=arr[i];}//把用户输入的值赋给新数组newArr[newArr.length-1]=num;//把新数组赋给旧数组arr=newArr;}else{//退出循环System.out.println("拜拜了你呢!!");break;}}while(true);//2、对数组进行缩减//练习:给定一个数组,int[] arr={1,2,3,4,5,6,7};//用户可以随意除去数组中任意一个元素,对数组进行缩减//当数组只剩下一个时,提示不能再缩减,退出程序。int[] arr={1,2,3,4,5,6,7};//初始数组int[] newArr;//声明新数组,进行数组的缩减char ch=' ';//用户的选择int num=0;//用户缩减的元素do{System.out.print("数组的元素如下:");//遍历数组for(int i=0;i<arr.length;i++){System.out.print(arr[i]+" ");}System.out.println("\n是否进行对数组缩减?y/n");ch=inp.next().charAt(0);//判断用户的选择if(ch=='y'){//确定缩减int index=0;//用户要缩减元素的下标boolean flag=false;//用户要缩减的元素是否存在//判断数组的长度是否大于一if(arr.length<=1){System.out.println("数组元素只剩下一个,不能再删减!");;break;}//初始化新数组newArr=new int[arr.length-1];//询问用户想缩减哪个元素System.out.println("要除去哪个元素?");num=inp.nextInt();//判断用户输入的元素的下标for(int i=0;i<arr.length;i++){if(arr[i]==num){index=i;flag=true;break;//找到后结束循环}}//判断用户输入的元素是否存在if(flag){//在数组中能找到int j=0;//用来给新数组当下标//除去此元素for(int i=0;i<arr.length;i++){if(arr[i]==arr[index]){continue;//此元素出现时跳过}//把旧数组数据赋给新数组newArr[j]=arr[i];j++;//下标加1}//把新数组重新赋给旧数组arr=newArr;}else{//不存在System.out.println("输入的元素不存在!!!");}}else{//不缩减,程序结束System.out.print("拜拜了你呢!!");break;}}while(true);
//冒泡排序int[]arr={12,5,23,96,20,45,3};//初始数组int temp=0;//它用来保存临时变量for(int i=0;i<arr.length-1;i++){//循环6次:arr.length-1System.out.println("\n====第"+(i+1)+"轮=====");//当确定好最后一个最大时,就无需再和其判断for(int j=0;j<arr.length-1-i;j++){//当前面的元素大于后面的元素时,互换位置if(arr[j]>arr[j+1]){temp=arr[j];//临时变量获得前面元素arr[j]=arr[j+1];//前面元素位置被后面元素替代arr[j+1]=temp;//后面元素位置被前面元素替代}}//打印每轮的结果for(int j=0;j<arr.length;j++){System.out.print(arr[j]+"\t");}//判断数组是否是正序的if(temp<0){System.out.println("此数组不需要重新搞,");break;}}
//杨辉三角int[][]arr=new int[10][];//初始化一个为10的二维数组for(int i=0;i<arr.length;i++){//层数//动态初始化一维数组arr[i]=new int[i+1];//为一维数组赋值for(int j=0;j<arr[i].length;j++){//首和尾都是 1if(j==0 || j==arr[i].length-1){arr[i][j]=1;}else{//根据规律获得的公式arr[i][j]=arr[i-1][j-1]+arr[i-1][j];}//输出数据System.out.print(arr[i][j]+" ");}//每层结束换行System.out.println();}
int[]arr={10,12,45,90};//初始数组int[]newArr=new int[arr.length+1];//用来扩容int index=-1;//用来确定要插入的位置int num=23;//要插入的整数boolean flag=false;//限制条件//查找下标以及把数据拷贝到newArr数组for(int i=0,j=0;i<arr.length;i++){//当要插入的数 第一次遇到大于自己的 就是要插入的位置if(num<=arr[i] && !flag){//当flag为默认时执行index=i;//获得当前下标flag=true;//限制条件为true:下次在遇到大于的数时跳过j++;//把当前位置空下来留给要插入的数据}newArr[j]=arr[i];//赋值j++;//用来给新数组赋值的下标}//判断if(index<0){//小于0说明要插的数很大,放在最后一个newArr[newArr.length-1]=num;}else{//正常赋值newArr[index]=num;}//把新数组重新赋给旧数组arr=newArr;System.out.println("插入之后如下:");for(int i=0;i<arr.length;i++){System.out.print(arr[i]+" ");}
public class Liu{public static void main(String[]args){Person p=new Person();p.name="jack";p.age=22;p.sex="男";//speak方法p.speak();//cal01方法,计算1+n的结果p.cal01(100);//getSum方法,计算两数之和int num=p.getSum(25,45);System.out.println("两数之和为:"+num);}}class Person{String name;//姓名int age;//年龄String sex;//性别//speak方法public void speak(){System.out.println(name+" 是一个好人");}//cal01方法,计算1+2+...+100的结果public void cal01(int num){int sum=0;for(int i=0;i<num;i++){sum+=num;}System.out.println("1+加到"+num+"的结果为:"+sum);}//getSum方法,计算两数之和public int getSum(int num,int num1){return (num+num1);}}
public class Liu{public static void main(String[]args){AA a=new AA();if(a.isOod(-3)){System.out.println("是个奇数");}else{System.out.println("是个偶数");}a.printChar(4,4,'#');}}class AA{//判断一个数是否是奇数public boolean isOod(int num){return num%2!=0;}//根据行数、列数以及字符打印效果public void printChar(int row,int col,char c){for(int i=0;i<row;i++){for(int j=0;j<col;j++){System.out.print(c+" ");}System.out.println();}}}
public class Three{public static void main(String[]args){HspMethods me=new HspMethods();String n1=me.showScore("男小弟",76.5,56.9);String n2=me.showScore("毛小妹",76.5,56.9,45.5);String n3=me.showScore("崔家与",76.5,56.9,78.2,56,86);System.out.println(n1+"\n"+n2+"\n"+n3);}}class HspMethods{public String showScore(String name,double ... cjs){double sum=0;for(int i=0;i<cjs.length;i++){sum+=cjs[i];}return (name+"有"+cjs.length+"门课,其总成绩为:"+sum);}}
public class Three{public static void main(String[]args){Person p=new Person();Person p1=new Person("tom",22);System.out.println("无参的:【name="+p.name+"--age="+p.age+"】");System.out.println("有参的:【name="+p1.name+"--age="+p1.age+"】");}}class Person{String name;int age;//将age属性初始值为18Person(){age=18;}public Person(String pName,int pAge){name=pName;age=pAge;}}
public class Three{public static void main(String[]args){System.out.println("===========one============");//声明数组double[]d={23.1,45.2,23.2,65,6};//创建对象A01 a=new A01();//调用方法double dd=a.maxs(d);System.out.println("最大值为:"+dd);System.out.println("===========two============");String[] strs={"love","tom","lisa","vol"};A02 a2=new A02();int index=a2.find("lisa",strs);System.out.println("目标下标为:"+index);System.out.println("===========three============");Book book=new Book();book.name="小王子黄金版";book.price=152;book.updatePrice(book);System.out.println("此书的最终价格为:"+book.price);}}class A01{//求最大值的方法public double maxs(double[] d){double max=0;for(int i=0;i<d.length;i++){if(max<d[i]){max=d[i];}}return max;}}//2、找下标class A02{public int find(String str,String[] strs){int index=-1;for(int i=0;i<strs.length;i++){if(str.equals(strs[i])){index=i;break;}}return index;}}//3、实现更改某书的价格class Book{String name;double price;public void updatePrice(Book b){if(b.price>150)price=150;else if(price>100) price=100;}}
package com.liu;public class Test { public static void main(String[] args) { Person p = new Person(); p.setName("南校地"); p.setAge(222); p.setSalary(5000); System.out.println(p.info()); }}class Person { public String name; private int age; private double salary; public String getName() { return name; } public void setName(String name) { if (name.length() >= 2 && name.length() <= 6) { this.name = name; } else { System.out.println("姓名太长,给定默认值"); this.name = "某某人"; } } public int getAge() { return age; } public void setAge(int age) { if (age >= 1 && age <= 120) { this.age = age; } else { System.out.println("年龄过大。默认18"); this.age = 18; } } public double getSalary() { return salary; } public void setSalary(double salary) { this.salary = salary; } //方法展示 public String info() { return "姓名:" + getName() + " 年龄:" + getAge() + " 薪资:" + getSalary(); }}
package com.liu;public class Test { public static void main(String[] args) { Person p = new Person("tom",22,6000); System.out.println(p.info()); }}class Person { public String name; private int age; private double salary; public Person() { } public Person(String name, int age, double salary) { this.setName(name); this.setSalary(salary); this.setAge(age); } public String getName() { return name; } public void setName(String name) { if (name.length() >= 2 && name.length() <= 6) { this.name = name; } else { System.out.println("姓名太长,给定默认值"); this.name = "某某人"; } } public int getAge() { return age; } public void setAge(int age) { if (age >= 1 && age <= 120) { this.age = age; } else { System.out.println("年龄过大。默认18"); this.age = 18; } } public double getSalary() { return salary; } public void setSalary(double salary) { this.salary = salary; } //方法展示 public String info() { return "姓名:" + getName() + " 年龄:" + getAge() + " 薪资:" + getSalary(); }}
package com.liu;public class Test { public static void main(String[] args) { Account ac=new Account("那空间",22,"123456"); System.out.println(ac.info()); }}class Account{ private String name; private double balance; private String pwd; public Account() { } public Account(String name, double balance, String pwd) { this.setBalance(balance); this.setName(name); this.setPwd(pwd); } public String getPwd() { return pwd; } public void setPwd(String pwd) { if(pwd.length()==6){ this.pwd = pwd; }else{ System.out.println("密码必须是6位,已设置默认密码"); this.pwd="000000"; } } public String getName() { return name; } public void setName(String name) { if(name.length()>=2 && name.length()<=4){ this.name = name; }else{ System.out.println("姓名长度在2-4之间,已设置默认值"); this.name="某某人"; } } public double getBalance() { return balance; } public void setBalance(double balance) { if(balance>20){ this.balance = balance; }else{ System.out.println("余额必须大于20"); this.balance=20; } } //信息输出 public String info(){ return "姓名:"+getName()+" 余额:"+getBalance()+" 密码:"+getPwd(); }}
package com.two;public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String say(){ return "姓名:"+name+" 年龄:"+age; }}
package com.two;public class Student extends Person{ private double score; public Student(String name, int age, double score) { super(name, age); this.score = score; } public double getScore() { return score; } public void setScore(double score) { this.score = score; } @Override public String say() { return "学生-"+super.say()+" 成绩:"+ score; } public void study(){ System.out.println(getName()+"-同学,正在学习~~~"); }}
package com.two;public class Teacher extends Person{ private double salary; public double getSalary() { return salary; } public void setSalary(double salary) { this.salary = salary; } public Teacher(String name, int age, double salary) { super(name, age); this.salary = salary; } @Override public String say() { return "老师-"+super.say()+" 薪水:"+salary; } public void teach(){ System.out.println(getName()+"-老师正在教课`~~~"); }}
package com.two;public class PloyArray { public static void main(String[] args) { Person[]p=new Person[5]; p[0]=new Person("淘米",20); p[1]=new Student("小明",20,86.5); p[2]=new Student("小红",20,90.5); p[3]=new Teacher("赵sir",35,5000); p[4]=new Teacher("李sir",30,5500); for (int i = 0; i < p.length; i++) { System.out.println(p[i].say()); if(p[i] instanceof Teacher){ ((Teacher) p[i]).teach(); }else if(p[i] instanceof Student){ ((Student) p[i]).study(); } } }}
package com.extendsT;public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String say(){ return "姓名="+name+" 年龄="+age; }}class Student extends Person{ private String id; private double score; public Student(String name, int age, String id, double score) { super(name, age); this.id = id; this.score = score; } public String getId() { return id; } public void setId(String id) { this.id = id; } public double getScore() { return score; } public void setScore(double score) { this.score = score; } @Override public String say(){ return super.say()+" id="+id+" score="+score; }}class Test{ public static void main(String[] args) { Person p=new Person("那地方",21); System.out.println(p.say()); Student s=new Student("看到",21,"1001",98); System.out.println(s.say()); }}
public class Test { public static void main(String[] args) { Person p=new Person("tom",20,'女'); Person p1=new Person("tom",20,'女'); System.out.println(p.equals(p1)); }}class Person { private String name; private int age; private char gender; public Person(String name, int age, char gender) { this.name = name; this.age = age; this.gender = gender; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public char getGender() { return gender; } public void setGender(char gender) { this.gender = gender; } @Override public boolean equals(Object obj) { //当是同一个对象时 if (this == obj) { return true; } //判断类型 if (obj instanceof Person) { Person p = (Person) obj; return this.name.equals(p.name) && this.age == p.age && this.gender == p.gender; } //类型不同 return false; }}
public class Test { public static void main(String[] args) { Car bm = new Car("BM"); bm=null; System.GC();//回收命令 System.out.println("程序结束~~~"); }}class Car{ private String name; public Car(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override protected void finalize() throws Throwable { System.out.println("销毁汽车:"+name); System.out.println("释放了某些资源!!!"); }}
public class LingMoneyOs { public static void main(String[] args) { //键盘输入 Scanner inp = new Scanner(System.in); //循环判断条件 boolean loop = true; //用来接收用户的选择 String str = ""; //收支记录 String allNote = "\n----------零钱通明细----------"; //收益或支出的金钱 double money; //总金额 double allMoney = 0; //时间格式转换 SimpleDateFORMat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //消费的项目 String note; do { System.out.println("----------零钱通菜单----------"); System.out.println("\t\t1 零钱通明细"); System.out.println("\t\t2 收益入账"); System.out.println("\t\t3 消费"); System.out.println("\t\t4 退 出"); System.out.print("请选择(1-4):"); str = inp.next(); //使用switch来进行判断 switch (str) { case "1": System.out.println(allNote); break; case "2": System.out.print("收益金额:"); money = inp.nextDouble(); //校验金额是否合法 if (money <= 0) { System.out.println("**收益入账金额应大于0!**"); break; } //总金额改变 allMoney += money; //添加记录 allNote += "\n收益入账\t+" + money + "\t" + sdf.format(new Date()) + "\t余额:" + allMoney; System.out.println("\n~~~~~~~添加欧克~~~~~~~"); break; case "3": System.out.print("消费金额:"); money = inp.nextDouble(); System.out.print("消费说明:"); note = inp.next(); //判断消费的金额是否大于自己拥有的 if (money > allMoney || money <= 0) { System.out.println("**消费金额应在0-" + allMoney + " 之间**"); break; } //跟新总钱数 allMoney -= money; //添加记录 allNote += "\n" + note + "\t-" + money + "\t" + sdf.format(new Date()) + "\t余额:" + allMoney; System.out.println("\n~~~~~~~添加欧克~~~~~~~"); break; case "4": //用来接收用户的选择 char isTui; while (true) { System.out.print("确定要退出吗?y/n:"); isTui = inp.next().charAt(0); if ('y' == isTui || 'n' == isTui) {break; } } //判断 if ('y' == isTui) { loop = false; } else if ('n' == isTui) { loop = true; } break; default: System.out.println("输入有误,请重新选择!!"); } } while (loop); System.out.println("-----感谢你使用零钱通系统,期待你的下次光临!-----"); }}
public class LingMoneyOsOop { Scanner inp=new Scanner(System.in); //循环判断条件 boolean loop = true; //用来接收用户的选择 String str = ""; //收支记录 String allNote = "\n----------零钱通明细----------"; //收益或支出的金钱 double money; //总金额 double allMoney = 0; //时间格式转换 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //消费的项目 String note; public void showMenu(){ do { System.out.println("----------零钱通菜单----------"); System.out.println("\t\t1 零钱通明细"); System.out.println("\t\t2 收益入账"); System.out.println("\t\t3 消费"); System.out.println("\t\t4 退 出"); System.out.print("请选择(1-4):"); str = inp.next(); //使用switch来进行判断 switch (str) { case "1": this.info(); break; case "2": this.getMoney(); break; case "3": this.giveMoney(); break; case "4": this.GoOut(); break; default: System.out.println("输入有误,请重新选择!!"); } } while (loop); System.out.println("-----感谢你使用零钱通系统,期待你的下次光临!-----"); } public void info(){ System.out.println(allNote); } public void getMoney(){ System.out.print("收益金额:"); money = inp.nextDouble(); //校验金额是否合法 if (money <= 0) { System.out.println("**收益入账金额应大于0!**"); return; } //总金额改变 allMoney += money; //添加记录 allNote += "\n收益入账\t+" + money + "\t" + sdf.format(new Date()) + "\t余额:" + allMoney; } public void giveMoney(){ System.out.print("消费金额:"); money = inp.nextDouble(); System.out.print("消费说明:"); note = inp.next(); //判断消费的金额是否大于自己拥有的 if (money > allMoney || money <= 0) { System.out.println("**消费金额应在0-" + allMoney + " 之间**"); return; } //跟新总钱数 allMoney -= money; //添加记录 allNote += "\n" + note + "\t-" + money + "\t" + sdf.format(new Date()) + "\t余额:" + allMoney; } public void goOut(){ //用来接收用户的选择 char isTui; while (true) { System.out.print("确定要退出吗?y/n:"); isTui = inp.next().charAt(0); if ('y' == isTui || 'n' == isTui) { break; } } //判断 if ('y' == isTui) { loop = false; } else if ('n' == isTui) { loop = true; } }}class Test{ public static void main(String[] args) { new LingMoneyOsOop().showMenu(); }}
学习路上肯定会有很多艰难险阻,但这并不可怕,让我们时时牢记h自己的初心是什么?虽然现在自己的技术非常小白,但这不能代表一直就是这样,老韩的座右铭挺好的:我亦无他,惟手熟尔--《卖油翁》加油吧,伙计,也许现在你麻木了,但不要放弃,重新挑起自己的热爱,昨日已经过去,无法回去;明日尚未来到,无法预测;今日正在逝去,把握当下。今日的光景,是过去的结果,未来想要更多机会,乃在乎现在的选择,既然自己想要丰富自己,就从现在当下开始吧,把握不住当下,也就把握不住未来;今天如何选择,明日就会有不一样的结果,今日种的因,明日就要吃其结的果....勇于逃离自我辖制,自己有很大潜力,勇敢去闯吧,不要被恐惧吓住,不论什么事,就大胆尝试(不是犯罪的事),无论结果如何,至少不留遗憾了。
public class Test05 { public static void main(String[] args) { Week[] values = Week.values(); System.out.println("==所有星期的信息如下=="); for (Week w:values){ //这里使用getName()获取,也可使用重写toString方法返回name System.out.println(w.getName()); } }}enum Week{ MONDAY("星期一"),TUESDAY("星期二"),WEDNESDAY("星期三"),THURSDAY("星期四"), FRIDAY("星期五"),SATURDAY("星期六"),SUNDAY("星期日"); private String name; Week(String name) { this.name = name; } public String getName() { return name; }}
public class Test01 { public static void main(String[] args) { int[] arr={-1,-8,3,9,1,7}; //调用自排序方法 selfCompare(arr, new Comparator() { @Override public int compare(Object o1, Object o2) { int a= (int) o1; int b= (int) o2; return b-a; } }); //输出排序好的数组 for (int a :arr) { System.out.println(a); } } public static void selfCompare(int[]arr, Comparator c){ int temp; for (int i = 0; i < arr.length-1; i++) { for (int j = 0; j < arr.length-1-i; j++) { if (c.compare(arr[j],arr[j+1])>0){ temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } }}
public class Test01 { public static void main(String[] args) { Book[] books = new Book[4]; books[0] = new Book("红楼梦", 100); books[1] = new Book("金瓶梅新", 90); books[2] = new Book("青年文摘20年版", 10); books[3] = new Book("java从入门到大神", 300); //进行排序 //按price排序 Arrays.sort(books, new Comparator<Book>() { @Override public int compare(Book o1, Book o2) { Book b1=o1; Book b2=o2; double result= b2.getPrice()- b1.getPrice(); if(result>0) { return -1; }else if(result <0){ return 1; }else { //两数相等时 return 0; } } }); //按书名长度 Arrays.sort(books, new Comparator<Book>() { @Override public int compare(Book o1, Book o2) { Book b1=o1; Book b2=o2; return b1.getName().length()-b2.getName().length(); } }); //打印最后结果 for (Book b:books){ System.out.println(b); } }}class Book { private String name; private double price; public Book(String name, double price) { this.name = name; this.price = price; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } @Override public String toString() { return "Book{" + "name='" + name + '\'' + ", price=" + price + '}'; }}
public class Test03 { public static void main(String[] args) { //测试数据 String str = "abcdef"; System.out.println("====测试前数据====="); System.out.println(str); try { str = reverse(str, 10, 4); } catch (Exception e) { System.out.println(e.getMessage()); return; } System.out.println("====交换后===="); System.out.println(str); } public static String reverse(String str, int start, int end) { //做个验证环节,防止一些因操作带来异常 if (!(str != null && start >= 0 && end >= 0 && str.length() > 0 && start < str.length() && end < str.length())) { throw new RuntimeException("请检查输入的参数,貌似又不恰当的地方...."); } //把字符串转换为char数组 char[] chars = str.toCharArray(); //辅助变量 char temp; for (int i = start, j = end; i < j; i++, j--) { temp = chars[i]; chars[i] = chars[j]; chars[j] = temp; } //使用chars重新构建一个String return new String(chars); }}
public class Test04 { public static void main(String[] args) { String name="tom"; String pwd="123456"; String email="111@qq.com"; try { userReGISter(name,pwd,email); System.out.println("注册OK啦!"); } catch (Exception e) { System.out.println(e.getMessage()); } } public static void userRegister(String name, String pwd, String email) { // 第一步:判断参数是否为空 if (!(name != null && pwd != null && email != null)) { throw new RuntimeException("本次注册的各个信息不能为空!!"); } //第二步:判断姓名 if (!(name.length() >= 0 && name.length() <= 4)) { throw new RuntimeException("姓名长度应在【2,4】,你输入的姓名不符合【" + name.length() + "】"); } //第三步:判断密码 if (!(pwd.length() == 6 && isNum(pwd))) { throw new RuntimeException("密码必须是6位且都是数字!!"); } //第四步:判断邮箱 int e = email.lastIndexOf("@"); int e1 = email.lastIndexOf("."); if (!(e > 0 && e1 > e)) { throw new RuntimeException("邮箱中必须存在@和.且@在.前面!!"); } } public static boolean isNum(String pwd) { //把字符串转换为char数组 char[] chars = pwd.toCharArray(); for (int i = 0; i < chars.length; i++) { if ((chars[i] < '0' || chars[i] > '9')) { return false; } } return true; }}
public class Test06 { public static void main(String[] args) { String str="abcABHHJ123楠小弟"; numsOfWord(str); } public static void numsOfWord(String str){ if(str==null){ System.out.println("不能为空!!"); return; } char[] chars = str.toCharArray(); //大写字母个数 int dn=0; //小写字母个数 int xn=0; //数字个数 int nn=0; //其他数字 int other=0; for (int i = 0; i < chars.length; i++) { if(chars[i]>='A'&&chars[i]<='Z'){ dn++; }else if(chars[i]>='a'&&chars[i]<='z'){ xn++; }else if(chars[i]>='0'&&chars[i]<='9'){ nn++; }else{ other++; } } System.out.println("大写字母有:"+dn); System.out.println("小写字母有:"+xn); System.out.println("其他字符有:"+other); System.out.println("数字有:"+nn); }}
--参考答案public class Test01 { public static void main(String[] args) { List<Employee> list=new ArrayList<>(); //添加数据 list.add(new Employee("tom",55000,new MyDate(2000,4,22))); list.add(new Employee("lisa",45000,new MyDate(1998,8,21))); list.add(new Employee("lisa",45000,new MyDate(1998,8,10))); System.out.println("=====排序前===="); System.out.println(list); //进行排序 list.sort(new Comparator<Employee>() { @Override public int compare(Employee e1, Employee e2) { //先判断是否属于这个类型 if(!(e1 instanceof Employee && e2 instanceof Employee)){ System.out.println("类型不正确!!"); return 0; } //这里开始比对姓名 int i = e1.getName().compareTo(e2.getName()); if(i!=0){ return i; } //姓名相同:这里开始比较生日,MyDate类实现Comparable类 return e1.getBirthday().compareTo(e2.getBirthday()); } }); System.out.println("=====排序后======"); System.out.println(list); }}class Employee{ private String name; private double price; private MyDate birthday; public Employee(String name, double price, MyDate birthday) { this.name = name; this.price = price; this.birthday = birthday; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public MyDate getBirthday() { return birthday; } public void setBirthday(MyDate birthday) { this.birthday = birthday; } @Override public String toString() { return "\nEmployee{" + "name='" + name + '\'' + ", price=" + price + ", birthday=" + birthday + '}'; }}class MyDate implements Comparable<MyDate>{ private int year; private int month; private int day; public MyDate(int year, int month, int day) { this.year = year; this.month = month; this.day = day; } @Override public String toString() { return "MyDate{" + "year=" + year + ", month=" + month + ", day=" + day + '}'; } public int getYear() { return year; } public void setYear(int year) { this.year = year; } public int getMonth() { return month; } public void setMonth(int month) { this.month = month; } public int getDay() { return day; } public void setDay(int day) { this.day = day; } @Override public int compareTo(MyDate o) { //当年不一样是 int y = year - o.getYear(); if(y!=0){ return y; } //当年相同时,判断月 int mo = month - o.getMonth(); if(mo!=0){ return mo; } //当年月都相同时,比较日 return day - o.getDay(); }}
public class PannelTest extends JFrame { private MyPanel mp = null; public static void main(String[] args) { new PannelTest(); } public PannelTest() { mp = new MyPanel(); //添加画板 this.add(mp); //设置窗口大小 this.setSize(400, 400); //设置title this.setTitle("画一个圆"); //设置点击❌号结束运行 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置窗体可显示 this.setVisible(true); }}class MyPanel extends Panel { @Override public void paint(Graphics g) { super.paint(g); //画出一个圆形 g.drawOval(10, 10, 50, 50); }}
public class TestLister extends JFrame { MyPanel my = null; public static void main(String[] args) { new TestLister(); } public TestLister() { my = new MyPanel(); //添加画板 this.add(my); //设置窗体大小 this.setSize(400, 400); //设置点击叉号关闭 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置不可最大化 this.setResizable(false); //设置窗体可显示 this.setVisible(true); //添加画板监听器 this.addKeyListener(my); }}class MyPanel extends Panel implements KeyListener { int x = 10, y = 10; @Override public void paint(Graphics g) { super.paint(g); //画一个圆形 g.fillOval(x, y, 30, 30); } @Override public void keyTyped(KeyEvent e) { } @Override public void keyPressed(KeyEvent e) { System.out.println("按下了:" + e.geTKEyChar()); //按下 上下左右键时开始添加事件 if(e.getKeyCode()==KeyEvent.VK_DOWN){ y++; }else if(e.getKeyCode()==KeyEvent.VK_UP){ y--; }else if(e.getKeyCode()==KeyEvent.VK_LEFT){ x--; }else if(e.getKeyCode()==KeyEvent.VK_RIGHT){ x++; } //重绘画板 this.repaint(); } @Override public void keyReleased(KeyEvent e) { }}
@Test public void test01(){ Runtime runtime = Runtime.getRuntime(); //获取cpu个数 int i = runtime.availableProcessors(); System.out.println("此电脑拥有cpu有"+i+" 个"); }
public class TestExce { public static void main(String[] args) throws InterruptedException { Thread t = new Thread(new Hello()); for (int i = 1; i <= 10; i++) { System.out.println("hi"+i); if(i==5){ t.start(); t.join(); System.out.println("子线程结束....."); } Thread.sleep(1000); } System.out.println("主线程结束..."); }}class Hello implements Runnable{ @Override public void run() { for (int i = 1; i <=10 ; i++) { System.out.println("hello"+i); } try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } }}
public class TestExce { public static void main(String[] args) throws InterruptedException { Ticket t = new Ticket(); new Thread(t).start(); new Thread(t).start(); new Thread(t).start(); }}class Ticket implements Runnable{ private boolean loop=true; private int num=100;//下面代码块为方法同步 private synchronized void sell(){ //代码块同步 // synchronized(同步的类){//下面的方法,填其中//} if (num<=0){ System.out.println("票已卖完!!"); loop=false; return; } System.out.println(Thread.currentThread().getName()+" 卖了一张票,剩余:"+(--num)); //休眠一段时间 try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } } @Override public void run() { while (loop){ sell(); } }}
public class ThreadTest { public static void main(String[] args) { A a = new A(); B b = new B(a); a.start(); b.start(); }}class A extends Thread { private boolean flag=true; @Override public void run() { while (flag){ System.out.println((int) (Math.random()*100)+1); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } public void setFlag(boolean flag) { this.flag = flag; }}class B extends Thread{ private A a; private Scanner inp=new Scanner(System.in); public B(A a){ this.a=a; } @Override public void run() { while (true){ System.out.println("请输入Q来结束"); if(inp.next().equalsIgnoreCase("Q")){ //以通知方式结束a进程 a.setFlag(false); System.out.println("B线程已退出"); break; } } }}
public class ThreadTest02 { public static void main(String[] args) { Card card = new Card(); User u1 = new User(" 小虎", card); User u2 = new User(" 小白", card); u1.start(); u2.start(); }}class Card { private static int money = 10000; public int getMoney() { return money; } public void setMoney(int money) { Card.money = money; }}class User extends Thread { private String name; public Card card; public User(String name, Card card) { this.name = name; this.card = card; } @Override public void run() { while (true) { //同步代码块:同步的是card对象 synchronized (card) { if (card.getMoney() < 1000) { System.out.println("余额不足。目前剩余:" + card.getMoney()); break; } card.setMoney(card.getMoney() - 1000); System.out.println(name + "取走1000,当前剩余:" + card.getMoney()); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } }}
读取
添加
修改
个人代码中未实现的功能:1、没有解决坦克重叠问题2、没添加音乐3、没有菜单4、不能暂停....
####ii、应用案例
ServerSocket serverSocket=new ServerSocket(9999); System.out.println("在段口9999进行监听......"); //获取客户 Socket socket = serverSocket.accept(); //获取客户端发来的图片 InputStream is = socket.getInputStream(); BufferedInputStream bis=new BufferedInputStream(is); //把文件保存到指定路径 BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("src\\t.gif")); //使用包装方法把文件全部读取后返回byte数组 byte[] bytes = StreamUtilsTools.streamToByteArray(bis); //开始保存数据 bos.write(bytes); bos.close(); System.out.println("从客户端获取到了图片"); //给客户端发送数据 OutputStream os = socket.getOutputStream(); BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(os,"utf8")); bw.write("收到图片!"); bw.newLine();//结束标识 bw.flush(); //关闭 bw.close(); bis.close(); socket.close(); serverSocket.close();
Socket socket=new Socket("127.0.0.1",9999); //发送图片数据 BufferedOutputStream bos=new BufferedOutputStream(socket.getOutputStream()); BufferedInputStream bis=new BufferedInputStream(new FileInputStream("e:\\1.gif")); //获取文件 byte[] bytes = StreamUtilsTools.streamToByteArray(bis); //发送文件 bos.write(bytes); bis.close(); //结束标识 socket.shutdownOutput(); //接收从服务器发来的信息 InputStream is = socket.getInputStream(); String s = StreamUtilsTools.streamToString(is); System.out.println("从服务器接收的信息:"+s); //关闭 bos.close(); socket.close();
public static byte[]streamToByteArray(InputStream is) throws IOException { //创建输出流对象 ByteArrayOutputStream bos=new ByteArrayOutputStream(); int len; //字节数组 byte[]buff=new byte[1024]; //循环读取 while ((len=is.read(buff))!=-1){ //把读取的数据写入bos中 bos.write(buff,0,len); } bos.close(); return bos.toByteArray(); } public static String streamToString(InputStream is) throws IOException { BufferedReader br=new BufferedReader(new InputStreamReader(is,"utf8")); StringBuilder sb=new StringBuilder(); String len; while ((len=br.readLine())!=null){ sb.append(len+"\r\n"); } return sb.toString(); }
验证
准备
解析
初始化
public class HomeWork02 { public static void main(String[] args) throws Exception { Class<?> aClass = Class.forName("java.io.File"); //获取file类的所有构造器 Constructor<?>[] allCon = aClass.getDeclaredConstructors(); for (Constructor<?> constructor : allCon) { System.out.println("构造器:"+constructor); } System.out.println("=================================="); //通过构造器创建 Constructor<?> con = aClass.getConstructor(String.class); //实例化对象 Object o1 = con.newInstance("e:\\nanxiaodi.txt"); //获取创建文件方法 Method me = aClass.getMethod("createNewFile"); Object invoke = me.invoke(o1); System.out.println("创建欧克?"+invoke); }}
来源地址:https://blog.csdn.net/qq_45066822/article/details/125346809
--结束END--
本文标题: Java学习(java基础)-韩顺平老师
本文链接: https://www.lsjlt.com/news/452479.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-06-06
2024-06-06
2024-06-05
2024-06-04
2024-06-04
2024-06-03
2024-06-03
2024-06-03
2024-06-04
2024-06-03
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0