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
- Demo① --> java 学习历程
- Demo② --> java 学习历程
- Demo③ --> java 学习历程
- java 学习历程
- Java 学习历程
- Java 学习历程
- java 学习历程
- java 学习历程
- 学习Java的历程
- Java学习历程
- java高级学习历程
- java学习历程1
- Java学习历程
- 我的Java学习历程
- java学习历程(转)
- Java Thread学习历程一
- java菜鸟的学习历程
- 记录学习java的历程
- response重定向的两种写法
- ios字符串常用方法总结
- 十道海量数据处理面试题
- Feature Selection(特征提取) 单纯高信息量unigram与参考情感词典词汇对比
- 9. UINavigationController
- Demo① --> java 学习历程
- windows下快速筛选同一类型文件
- SharePoint开发中的最佳实践
- 问题1——在子进程中调用execl完后,接着调用_exit(0)的意义——< APUE-P201>
- KMP算法 算法摘记
- IaaS, PaaS和SaaS公司都做些什么
- 内存_PA_MAP_VA
- poj 2796 Feel Good (单调栈)
- 统一设计,iOS6也玩扁平化