Demo① --> java 学习历程

来源:互联网 发布:什么软件改变图片大小 编辑:程序博客网 时间:2024/06/05 20:09
<h2><span lang="EN-US" style="font-family:幼圆">HelloWorld.java</span></h2>
public class HelloWorld {    public static void main(String[] args) {System.out.println("HelloWorld");} }
==========================================================================================================================================================
<h2><span lang="EN-US">MyFirstJava.java</span></h2><pre name="code" class="java">//package语句必须位于java有效代码的第一行//包好处1:每个类可以分门别类存放 便于管理//好处2:可以让类名全球唯一的//包名规范:公司域名.项目名.子模块名//包名中的. 对应每一层目录结构//package com.tarena.javase.day01;//package com.ibm.ems.day01;package day01;    //package也是 关键字//public 关键字 表示公开的  修饰符 可以修饰类//class  关键字 表示定义一个类//MyFirstJava就是类的名称public class MyFirstJava {  //类体 表示类的作用范围    //main方法 主方法 Java程序唯一的入口方法//程序一定从main方法的第一行开始执行//main方法的签名(写法) 是固定的//方法三要素:返回值类型 方法名(参数列表)//public 是修饰符 可以修饰一个方法//方法名:  main//返回值类型: void   无返回值类型 无需返回数据//参数表:String[] args    String[] 表示字符串数组//static   关键字 修饰符 表示静态的含义public static void main(String[] args) { //方法体 方法的范围//打印不换行System.out.print("你好");//打印并换行   ln -> line 行System.out.println("HelloKitty");  //声明了一个String类型的变量 名称name//赋给了初始值 "Tom"//变量可以改变其值  具备变量的名称//Java是一种强类型的语言 对类型要求严格//第一次声明变量时 必须明确指明数据类型//String表示字符串类型  可以存放字符串数据String name = "Tom";   // =表示赋值//使用name变量 给一个新的值name = "詹姆斯";   //将等号 右值 赋给 左值//定义一个int整数类型的变量 age 赋初始值23int age = 23;//System  系统类  java.lang.System类//  . 取成员运算符  System中的成员 out//  System.out 表示系统标准输出流   终端// println() 表示打印并换行的方法// +  运算符 即可表示算术加    1+2  结果 3//                又可表示字符串的拼接//遇到字符串才变为 字符串的拼接        System.out.println("我的名字:" + name);System.out.println("我的年龄:" + age);System.out.println(1 + 2 + "abc" + 1 + 2);//  12abc12    3abc12   3abc3   12abc3}  //main方法结束}  //类体结束//有一个class  就会生成一个.class文件class Student{}/**注意:1)Java源程序必须是以.java为后缀的文本文件2)一个Java源文件可以定义多个class  类   但是只能有一个类可以使用public修饰   并且public修饰的类名必须和源文件名一致    (包括大小写)*/
==========================================================================================================================================================
<h2><span lang="EN-US">TestScanner.java</span></h2><div><span lang="EN-US"></span><pre name="code" class="java">package day01;//声明我们用到的类 在哪个包下import java.util.Scanner;     //扫描器类public class TestScanner{public static void main(String[] args){//创建一个扫描器类Scanner的对象 名称scScanner sc = new Scanner(System.in);//提示并输入nameSystem.out.println("请输入名字:");//next()方法是一个阻塞的方法//程序执行到next()时 会停住 等待用户的输入//直到用户输入完字符串数据后 回车 结束返回//将返回的字符串赋值给name变量String name = sc.next();System.out.println("您输入的名字:" + name);System.out.print("请输入年龄: ");//等待用户输入int整数类型的数据 赋值给age变量int age = sc.nextInt();System.out.println("您输入的年龄:" + age);//如果想输入一个小数 double//double salary = sc.nextDouble();//5000.5}}
==========================================================================================================================================================
<h2><span lang="EN-US">TestEmpScanner.java</span></h2><div><span lang="EN-US"></span><pre name="code" class="java">package day01;//声明Scanner类所在的包  (导包)import java.util.Scanner;/** * 作业:提示并输入和输出员工的基本信息借助于java.util.Scanner类 sc输入的信息    类型姓名 name     java.lang.String    sc.next()年龄 age       int                   sc.nextInt()薪水 salary    double               sc.nextDouble()输出三个变量的值 name  age  salary借助于IDE:MyEclipse实现 * @author Lujy */public class TestEmpScanner {//String和System都在java.lang下//同包下的已经lang包下的类无需import可以直接使用public static void main(String[] args) {//创建一个扫描器对象sc Scanner sc = new Scanner(System.in);//提示并输入三个变量 System.out.print("请输入姓名:");String name = sc.next();System.out.print("请输入年龄:");int age = sc.nextInt();System.out.print("请输入薪水:");double salary = sc.nextDouble();//将变量结果打印输出 System.out.println("姓名:" + name           + " 年龄:" + age           + " 薪水:" + salary);}}


==========================================================================================================================================================
<h2><span lang="EN-US">TestInt.java</span></h2><pre name="code" class="java">package day02;//测试整数类型的运算public class TestInt {public static void main(String[] args){//int money = 500000000;long money = 500000000;money = money + 500000000;money = money + 500000000;money = money + 500000000;money = money + 500000000;System.out.println(money);  //25亿//结论:选取合适的数据类型参与运算}}


<span style="font-family: Arial, Helvetica, sans-serif;">====================================================================================================================================</span>
<h2><span lang="EN-US">TestBigInteger.java</span></h2><pre name="code" class="java">package day02;import java.math.BigInteger;//使用引用类型实现大整数的精确运算//需要使用java.math.BigInteger类public class TestBigInteger {public static void main(String[] args){//创建了一个BigInteger类型的对象b1//表示9BigInteger b1 = new BigInteger("9");//求得b1的99次方   b1.pow(n)  方法//结果还是BigInteger类型BigInteger b2 = b1.pow(99);System.out.println(Long.MAX_VALUE);System.out.println(b2);//练习:求得8的88次方BigInteger b3 = new BigInteger("8");BigInteger b4 = b3.pow(88);System.out.println(b4);}}

==========================================================================================================================================================
<h2><span lang="EN-US">TestPrime.java</span></h2><pre name="code" class="java">package day02;//测试基本数据类型public class TestPrime {public static void main(String[] args){//结论:整数的字面值默认是int类型//如果整数的字面值 在byte的表数范围内//可以自动从int类型转化为byte类型byte b1 = 1;  // [-128, +127]//byte b2 = 128;short s1 = 123;  //[-32768, +32767]//short s2 = 32768;int i1 = 123;  //[-2147483648,2147483647]//int i2 = 2147483648;//long类型的字面值 结尾l或L 推荐Llong lo1 = 2147483648L;long lo2 = 200000000000000001L;//通过基本类型的包装类 查看最大值//MAX_VALUE  MIN_VALUE 是常量System.out.println(Integer.MAX_VALUE);System.out.println(Long.MAX_VALUE);//测试char类型  char类型使用单引号char c1 = 'A';  //双引号表示字符串"Abc"char c2 = 65;  //unicode的十进制数//unicode表达法 4位十六进制数char c3 = '\u0041';System.out.println(c1);System.out.println(c2);System.out.println(c3);char c4 = '中';char c5 = '\u4e2d';char c6 = '\u56fd';System.out.println(c4);System.out.println(c5);System.out.println(c6);//如何通过 c1 'A' 变为'B'//char和int运算 提升为int类型//强制类型转换 (数据类型)变量//int类型 强制转换 charchar c7 = (char)(c1 + 1);System.out.println(c7);//如果从c8得到int类型的9char c8 = '9';int n3 = c8 - '0';System.out.println(n3);//浮点型//规则:小数的字面值默认double类型double d1 = 3.0;double d2 = 2.1;System.out.println(d1 - d2);//出现了精度的误差    //0.8999999999999999float f1 = (float)3.0;//float类型字面值  F或f结尾float f2 = 2.1F; System.out.println(f1 - f2);//0.9000001}}

==========================================================================================================================================================
<h2><span lang="EN-US">TestBigDecimal.java</span></h2><pre name="code" class="java">package day02;import java.math.BigDecimal;//使用大数据类型 精确计算小数public class TestBigDecimal {public static void main(String[] args){//通过BigDecimal类型创建一个对象d1//表示3.0BigDecimal b1 = new BigDecimal("3.0");//创建对象d2 表示2.1BigDecimal b2 = new BigDecimal("2.1");//求b1-b2  b1.subtract(b2)  减法//b1.add(b2) 加BigDecimal b3 = b1.subtract(b2);System.out.println(b3);  //精确的结果0.9//布尔类型  true表示天气好//分支语句的应用//boolean bo1 = true;boolean bo1 = false;if(bo1){  //如果bo1为true执行System.out.println("出去玩!");}else{    //如果bo1为false执行System.out.println("继续学习!");}}}

==========================================================================================================================================================
<h2><span lang="EN-US">TestRandomInt.java</span></h2><div><span lang="EN-US"></span><pre name="code" class="java">package day02;public class TestRandomInt {public static void main(String[] args) {double d1 = Math.random(); //[0, 1)System.out.println(d1);int n = (int)(d1 * 26); //[0,25]System.out.println(n);}}

==========================================================================================================================================================

TestRandomChar.java

packageday03.homework;//生成一个随机的大写字母 'A'~'Z'public classTestRandomChar {       public static void main(String[] args) {              //获取一个[0,1)的随机小数              double d1 = Math.random();               //获取一个[0,25]的随机整数              //将double强制类型转化为 int类型              int random = (int)(d1 * 26);              //使用random 生成一个随机字符              char randomChar = (char)('A' +random);              System.out.println();       }}

====================================================================================================================================

Student.java

package day03;//自定义的引用类型  学生类public class Student {//有什么? 属性   成员变量String name;     //姓名int age;          //年龄//会什么? 方法  学习方法public void study(String course){System.out.println(name+"学习"+course);}}

====================================================================================================================================

TestStudent.java

package day03;//测试类  测试day03.Student类 public class TestStudent {public static void main(String[] args) {//使用Student类 创建一个对象 stu1//引用变量 stu1 指向一个学生对象Student stu1 = new Student();stu1.name = "Tom";stu1.age = 21;stu1.study("JavaSE");//再创建Student类型的stu2对象  Student stu2 = new Student();stu2.name = "James";stu2.age = 23;stu2.study("Oracle");//stu3和stu1指向同一个对象 TomStudent stu3 = stu1;stu3.study("Unix");//此时,James对象没有引用指向//就成为系统垃圾 等待GC的回收stu2 = null;//空指针异常   访问null引用的成员//java.lang.NullPointerException//stu2.name = "James1";//stu2.study("SqlServer");}}

====================================================================================================================================

TestTypeChange.java

package day03;//测试数据类型转换public class TestTypeChange {public static void main(String[] args) {//自动类型转换//常数在表数范围内可以自动类型转换byte b1 = 1;    // [-128, 127]byte b2 = 'A';  //  65//数据范围小的可以自动向范围大的类型转换double d1 = 1;  //int -> doubleint n1 = 'A';    //char -> intint n2 = 2000000001;  //20亿零1float f1 = n2;   //int -> floatint n3 = (int)f1;     //float -> intSystem.out.println(n2);System.out.println(f1);System.out.println(n3);//引用类型的子类可以自动转换为父类Student stu1 = new Student();Object obj1 = stu1;//基本类型可以和它们的包装类型之间互相转换//java.lang.Integer类  int类型的包装类int i1 = 1;        //JDK5.0以后的特性Integer in1 = i1; //int -> Integer 自动封箱int i2 = in1;      //Integer->int 自动拆箱//强制类型转换    保留低字节byte b3 = (byte)128;System.out.println(b3); //-128byte b4 = (byte)256;// 00000000 00000000 00000001 00000000System.out.println(b4); //0double d2 = 2.6;int n5 = (int)d2;  //2  保留整数部分System.out.println(n5);}}

====================================================================================================================================

TestPlusPlus.java

package day03;//测试自增1运算符  ++public class TestPlusPlus {public static void main(String[] args) {int a = 1;int b = 2;//后++  先取值 后加1   a  a=a+1System.out.println(a++);  //1System.out.println(a);     //2//前++  先加1 后取值    a=a+1  aSystem.out.println(++a);  //3System.out.println(a);     //3//Invalid argument to operation ++/--//System.out.println(a+++++b);System.out.println(a++ + ++b); //6System.out.println(a);  //4System.out.println(b);  //3//--和++语法类似 区别在于是减1}}

====================================================================================================================================

package day03;//算术运算符public class TestAri{       public static void main(String[] args) {              System.out.println(3+5);  //8              System.out.println(3-5);  //-2              System.out.println(3*5);  //15              //int / int -> int              System.out.println(3/5);  //0 int/int =int              // double / int ->  double              System.out.println((double)3/5);  //0.6              System.out.println(3.0/5);   //0.6              System.out.println(5%3);   //2              // -5 = (-1) * 3 + (-2)              System.out.println(-5/3);   //-1              System.out.println(-5%3);  //-2                           byte b1 = 1;   //100              byte b2 = 2;   //100              //Type mismatch: cannot convertfrom int to byte              //byte + byte 或 short + short 自动提升为int运算              //在笔试题可能出现              int n1 = b1 + b2;              byte b3 = (byte)(b1 + b2);              System.out.println(b3);                           //等价于 b1 = b1+b2              //偏向于赋值运算符 不会自动提升int              b1 += b2;               System.out.println(b1);  //3       }}

====================================================================================================================================

TestShift.java

package day03;//测试移位运算符public class TestShift {public static void main(String[] args) {byte a = 1;byte b = 4;byte c = -2;//在进行移位运算过程中会自动提升为int// 00000000 00000000 00000000 00000001// 00000000 00000000 00000000 00000010// 00000000 00000000 00000000 00001000System.out.println(a<<1);  //2System.out.println(a<<3);  //8//求得2的3次方System.out.println(2 * 2 * 2);  //8//移位运算效率最高System.out.println(1<<3);  //8//向左边移n位, 表示乘以n个2// 00000000 00000000 00000000 00000100// 00000000 00000000 00000000 00010000System.out.println(b<<2);  //16//向右边移n位, 表示除以n个2System.out.println(b>>1);  //2System.out.println(c<<1);  //-4//-2的补码:   >>有符号右移 不够补符号位1// 11111111 11111111 11111111 11111110// 11111111 11111111 11111111 11111111System.out.println(c>>1);  //-1// >>> 无符号右移  最高位不够 补0// 11111111 11111111 11111111 11111110// 01111111 11111111 11111111 11111111System.out.println(c>>>1); //2147483647}}

====================================================================================================================================

TestCompare.java

package day03;//测试比较运算符public class TestCompare {public static void main(String[] args) {System.out.println(5>3);   //trueSystem.out.println(5<3);   //falseSystem.out.println(5>=3);  //trueSystem.out.println(5>=5);  //trueSystem.out.println(5<=3);  //falseStudent stu1 = new Student();//判定stu1是不是Student类型boolean b1 = stu1 instanceof Student;System.out.println(b1);  //trueSystem.out.println("-------------");//==  !=//基本类型比较的是值System.out.println(1 == 1);  //trueSystem.out.println(1 == 2);  //falseSystem.out.println(1 != 2);   //true//引用类型比较的是内存地址Student stu2 = new Student();Student stu3 = stu1;System.out.println(stu1 == stu2); //falseSystem.out.println(stu1 == stu3); //trueSystem.out.println(stu1 != null);   //trueSystem.out.println(stu1 == null);  //false}}

====================================================================================================================================

TestBit.java

package day03;//位运算符public class TestBit {public static void main(String[] args) {byte a = 5;     // 0000 0101byte b = 6;    //  0000 0110//按位与&  "有0则0,全1则1"System.out.println(a & b); //0000 0100  4//按位或 |  "有1则1,全0则0"System.out.println(a | b); //0000 0111  7//按位异或 ^  "同0异1"System.out.println(a ^ b);//0000 0011  3//按位取反 ~    0变1  1变0//0  二进制数全部是0  取反之后全1// 全1就表示 -1System.out.println(~0);  //-1}}

====================================================================================================================================

TestAnd.java

package day03;//逻辑与&并且public class TestAnd {public static void main(String[] args) {if(is3G() && hasCamera()){   //trueSystem.out.println("买!");}else{           //falseSystem.out.println("不买!");}}//判断是否是3G手机的方法public static boolean is3G(){System.out.println("不是3G");return false;}//判断是否包含相机功能的方法public static boolean hasCamera(){System.out.println("有相机");return true;}}

TestThree.java

package day03;//条件运算符三目运算符// 条件表达式 ? 条件为真的值 : 条件为假的值public class TestThree {public static void main(String[] args) {//求得两个整数的最大值int a = 3;int b = 5;int c = a > b ? a : b;System.out.println(c);//等价于if(a>b){   //如果c = a;}else{     //否则c = b;}System.out.println(c);}}

====================================================================================================================================

TestMax.java

package day04.homework;/** * 2、求出三个整数的最大值,使用三目运算符。? :   int a=3, b=7, c=5; * @author Lujy */public class TestMax {public static void main(String[] args) {int a=3, b=7, c=5;//使用三目运算符的嵌套int d = (a>b?a:b) > c ? (a>b?a:b) : c;System.out.println("max:" + d);}}

====================================================================================================================================

TestLeapYear.java

package day04.homework;import java.util.Scanner;/** * 3、从控制台输入一个年份,比如2012,判断是否是闰年   LeapYear判断依据:能够被4整除但不能被100整除,或者能够被400整除 * @author Lujy */public class TestLeapYear {public static void main(String[] args) {//提示并输入一个年份 yearScanner sc = new Scanner(System.in);System.out.print("请输入年份:");int year = sc.nextInt();//根据判断规则判断year是否是闰年//能够被4整除但不能被100整除,或者能够被400整除if((year%4==0 && year%100!=0) || (year%400==0)){System.out.println(year + "是闰年.");}else{System.out.println(year + "不是闰年.");}}}

====================================================================================================================================

TestSecond.java

package day04.homework;import java.util.Scanner;  //导入扫描器类/** * 1、从控制台输入一个秒数7199,要求按照以下格式输出:    1小时59分59秒(xx小时xx分xx秒) * @author Lujy */public class TestSecond {public static void main(String[] args) {//1. 准备一个扫描器对象,准备输入Scanner sc = new Scanner(System.in);//2. 提示并输入一个整数(秒数)secondSystem.out.print("请输入一个秒数:");int second = sc.nextInt();  //7199//3. 对秒数second进行分析解析出小时、分钟、秒int h = second / 3600;   //得到小时数int m = second % 3600 / 60; //得到分钟int s = second % 60;    //得到秒数//4. 将分析后的值进行拼接并输出System.out.println(h+"小时"+m+"分钟"+s+"秒");}}

====================================================================================================================================

TestLen.java

package day04;/** * 声明并调用len方法注意:方法不能在类外声明方法不能嵌套定义不能定义在方法中 */public class TestLen {/** * 通过直角边求得直角三角形斜边长 * @param a 直角边1 * @param b 直角边2 * @return 斜边长 */public static double len(double a, double b){//先求得a和b的平方和double d = a * a + b * b;//通过Math.sqrt() 开平方根return Math.sqrt(d);}//主调方法public static void main(String[] args) {double a = 3.0;double b = 4.0;//调用len方法传入两个参数返回结果double c = len(a, b); System.out.println("斜边长:" + c);System.out.println(len(3.0, 5.0));System.out.println(len(6.0, 8.0));}}

====================================================================================================================================

TestMax.java

package day04;/** * 声明并使用max方法求得两个整数的最大值 * @author Lujy */public class TestMax {//主方法程序的入口方法主调方法public static void main(String[] args) {int a = 3;int b = 5;//a和b称为实际参数//方法从哪里调用就从哪里返回int c = max(a, b);   //方法的调用System.out.println(c);}/** * 返回两个整数的最大值 * @param a  第一个整数   parameter参数 * @param b  第二个整数 * @return  返回a和b的最大值 *///int a 和 int b 称为形式参数运行时产生副本public static int max(int a, int b){return a>b ? a : b;}}

====================================================================================================================================

TestNum.java

package day04;import java.util.Scanner;/** * 输入一个整数,判断是正数、负数还是零 * @author Lujy */public class TestNum {public static void main(String[] args) {System.out.println("begin...");//提示并输入一个整数 numScanner sc = new Scanner(System.in);System.out.print("请输入一个整数:");int num = sc.nextInt();//根据num进行判断输出结果if(num > 0){System.out.println(num+"是正整数.");}else if(num < 0){System.out.println(num+"是负整数.");}else{System.out.println(num+"是零.");}System.out.println("end...");}}

====================================================================================================================================

TestSalary.java

package day04;import java.util.Scanner;//员工出差交通工具的选择public class TestSalary {public static void main(String[] args) {System.out.println("begin.");//提示并输入员工的薪水 salaryScanner sc = new Scanner(System.in);System.out.print("请输入员工薪水:");double salary = sc.nextDouble();//先处理<3000的情况提示并结束mainif(salary < 3000.0){System.out.println("工资不合法.");return;   //表示结束main方法}//以下情况一定>=3000.0if(salary >= 10000.0){System.out.println("飞机男");}else if(salary>=8000.0 /*&& salary<=9999*/){System.out.println("高铁男");}else if(salary>=6000.0){System.out.println("汽车男");}else if(salary>=5000.0){System.out.println("自行车男");}else if(salary>=4000.0){System.out.println("步行男");}else{  //一定<4000 并且>=3000System.out.println("宅男");}System.out.println("end.");}}
















0 0
原创粉丝点击