Java语言基础

MyFirstProgramer

/** 文档注释:
	java入门案例的编写:
	
	格式:
	
	修饰词  关键字  标识符类名,大驼峰命名法
	public  class  classname{ 
		
	}
	
	1.程序员编写的文件的扩展名.java 叫java源文件。
	2.源文件中public修饰的class  只能有一个。说明文件中可以有多个class。
	3.public修饰的类的名字要尽量与文件名一模一样。
	4.类名后面的花括号及其里面的内容,称之为类体。
	5.类体的开始符号'{' 应该位于类名后;结束符号'}' 应该位于开始符号所在行的首字符下面
	6.被包含的内容,应该缩进2或者是4个空格,也可以是一个tab键。
	
	main方法:固定写法,public static void main(String [] args){}
			  作用: 程序的入口,即JVM会先执行main方法
	输出语句:System.out  会得到一个输出流,默认指向了控制台
	          .println(): 调用流的打印并换行功能,将小括号里的数据打印到控制台
			              然后插入换行符。
						  
				运行案例:
					1. 编译 : 就是将java源文件使用javac编译器翻译成class文件(字节码文件)
						     javac 原文件名称(加上拓展名)
					2. 运行 :就是使用java指令启动jvm,让ivm加载class文件并执行里面的main方法
						  java class文件名称(不带扩展名)
 */
public class MyFirstProgramer{
	public  static void main(String[] args){
		System.out.println("Hello World");
	}
} 

VariableDemo01

/**  文档注释
      变量的应用:
		1. 语法的规则
		  -变量必须先声明和初始化
		    --声明:就是规定该变量的数据类型,也称为定义变量
		        int myNumber;  注意:句末用分号表示结束
			--初始化:就是变量的第一次赋值。
            --初始化的时机,分别是声明时直接初始化,和使用时再初始化
          -变量可以重复的存和取
            --存:用等号给变量赋值
			--取:用变量做其他事情都算取
			
			      
**/
public class VariableDemo{
	public static void main(String[] args){
		//练习1: 声明一个int类型的变量,变量名number。
		int number;
		//练习2: 给上面的number变量赋值100。
		number=100;//第一次赋值,叫初始化;
		//使用输出语句,进行打印。
		System.out.println(number);//注意:想要输出变量里的值,变量直接写在括号里,不要添加双引号。
		//练习3 : 定义long变量time为1000.并打印。
	     long time=1000;
		 System.out.println(time);
		 //练习4: 定义int类型的变量num,打印变量。
		 int num; 
		 System.out.println(num);// 会报编译错误,
		 //除了变量在声明时的位置,出现在其他任何位置上,都是在使用变量,那么变量使用前必须初始化。
	    
		 int a = 10;
		 int b = 20;
		 int c = a + b;//将a和b里的值取出来然后计算,结果30在存入变量c里。
	      a = 5;//将5存入a变量,原来存储的10被5覆盖。
		  a = 50;//将50存入a变量,原来的5被50覆盖。
		  a = a + 6;//使用a中的50与6做加法运算,结果56再次存入a中,覆盖原有的50.
	 
	 
	 }
}

VariableDemo02

/**
    变量的应用(续)
	 -变量的操作必须与声明时所强调的一致。简而言之,类型必须一致,否则是类型不匹配。
	 -变量是有自己的作用域的(与自己的使用范围)。
	   1)作用域:从声明处开始,一直到他所在的花括号的结束符号位置。
	   2)该作用域内,变量不能重复声明(定义),出了该作用域,需要重新定义(声明)
	   
	   
	 
**/	 

public class VariableDemo02{
	public static void main(String[] args){
		//定义一个int类型的变量number,初始化为10。
		int number = 10;
		number = 3.14; //3.14是小数类型,不是int类型,因此会报编译错误。
		
		//研究变量的作用域
		int a =	 100;
		if(a>50){
			int b = a*2;
		}else{
			int c = a-10;
			//long a = 100; 因为a已经在该作用域存在,因此不能重复定义
		}
		long c = 1000; //该处的c是、重新定义的,未重复,可以使用
		System.out.println(a);
		//System.out.println(b); 因为b这个变量出了自己的作用域
		System.out.println(c);	//使用long类型的c
	}
	public void run(){
	    System.out.println( number);//变量number想要使用,需要在使用前声明和初始化。
		
		
	}
}

VariableDemo03

/* 变量的分类:
    1. 按照位置分类
	  -成员变量:在方法外,类体里定义的变量
	  -局部变量:在方法里定义的变量
	2. 按照类型分类  
	  -基本数据类型(原始数据类型)(8种)
	  -引用数据类型(包括数组)
*/
public class VariableDemo03{
	int age = 10; //成员变量 
	public static void main(string[] args){
		//下面三个都是局部变量
		int number = 1;
		int num = -1;
		String myName = "lucy"
	 
	 }
	 String name = " michael"//成员变量
	 String gerder= "女"//成员变量
	 
	 public void run(){
		 int a = 10;//局部变量


}

TypeDemo01

/*  
    基本数据类型之整数的类型
	- Java各整数类型都有固定的表数范围和字段长度,这样不受具体OS的影响,保证了java的可移植性。
    - 赋值时,不能超出各自的范围,否则编译不通过。
    - 整数字面量,也叫整数直接量(literal),就是直接写出来的整数,是int类型。
    - int字面量,只要没有超出byte或者short的范围,是可以直接赋值给byte或short类型的变量的      (自动截断高位的0或1)
    - int字面量,可以直接给long类型的变量赋值。     (自动补全高位的32个0或1)
    - long字面量,需要在整数后面添加小写或者大写的L。
*/
public class TypeDemo01{
	public static void main(String[] args){
		byte b1 =10;
		//byte b12 =128; 编译错误,byte最大127。
		int n1 = 2147483647;//int最大值
		//int n2 = 2147483648;// 编译错误,超出int最大值。
		
		short s1 = 10; //10是int类型,因为没有超出short范围,因此可以直接赋值short。
		long lo1 = 1000;// 1000是字面量,属于int类型。可以直接赋值给long类型
	    long lo2 = 10L; //10L是long类型,直接就是64位二进制数
	
	System.out.println(b1);
	System.out.println(n1);
	System.out.println(s1);
	System.out.println(lo1);
	System.out.println(lo2);
	
	//long lo3 = 1000000000000000; 字面量就是int类型,因此不能超出范围
	long lo4 = 10000000000000000L;//使用long类型的字面量。
	}
}

TypeDemo02

/*  
   基本数据类型之浮点型的学习
     float:单精度类型,能精确到小数点后6~7位 
	                    能表示的整数部分范围在38位
	 double:双精度类型,能精确到小数点后15~16
	                     能表示的整数部分范围在308位 
		 
	  -浮点型的字面量默认是double类型,如果想要float字面量,需要添加F/f。
	  -浮点数字面量后面也可以添加D/d,也可以省略。	
      - 浮点数的写法: 例如: 5.12 3.12F 0.34 或者.34	  
*/

public class TypeDemo02{
	public static void main(String[] args){
		//float f1 = 3.14; //编译错误,因为字面量是double类型
		float f2 = 3.14f; //想要给float赋值,需要添加F/f
		double d1 = 0.12;
		double d2 = 10.1d;
		double d3 = .12; //.12相当于0.12;
		System.out.println(f2);
		System.out.println(d1);
		System.out.println(d2);
		System.out.println(d3);
		
		float f10 = 0.1234456789f;//将小数存入float类型的变量空间f10里面
		double d10 = 0.123456789123456789;//将小数存入float类型的变量空间d10里面
		System.out.println(f10);//取出时,发现不是原来的值
		System.out.println(d10);//取出时,发现不是原来的值
		
		double d101 = 3.0;
		double d102 = 3.9; //输出-0.8999999999999999
		System.out.println(d101- d102);//计算式有误差,并不精确。
	}
}

TypeDemo03

/*] 
    基本数据类型之字符类型的学习
	类型名:char
	解析: 在屏幕上看到的任何字符,如:汉字 子母 数字 其他等特殊符号。
	赋值特点:
	      1. 任意字符 使用单引号引起来,引号里有且只能有一个符号
		  2. 字符集:字符与底层二进制一一对应的表(密报例子)
		     
			 java语言里的字符使用的是unicode字符集,
			 每个字符都对应一个16位二进制的数(每个字符占用两个字节大小)。
             这些数的范围使用10进制就是0~65525;
             
               即:除了赋值字符本身以外,还可以赋值字符对应的数字,
			   也就是0~65525中的任意一个数字			

	注意: 因为char可以表示0~65525这个范围内的整数(无符号整数)
            因此可以参与运算	
		      
*/
public class TypeDemo03{
    public static void main (String[] args){
	    char c1 = '中';
	    char c2 = '9';
	    char c3 = '_';
	    char c4 = '\t'; //制表符 \t
	    char c5 = 't'; //给变量赋值普通的子母字符t
	    System.out.println(c1);
	    System.out.println(c2);
	    System.out.println(c3);
	    System.out.println(c4);
	    System.out.println(c5);
	    
	    //char c6 ='中国'; //编译错误,单引号里只能放入一个字符
	    //System.out.println(c6); 
		
		char c11 = 48;//字符0在unicode编码集里对应的那个整数
		char c12 = 57;//字符9在unicode编码集里对应的那个整数
		char c13 = 65;//字符A在unicode编码集里对应的那个整数
		char c14 = 90;//字符Z在unicode编码集里对应的那个整数
		char c15 = 97;//字符a在unicode编码集里对应的那个整数
		char c16 = 122;//字符z在unicode编码集里对应的那个整数
		System.out.println(c11);
		System.out.println(c12);
		System.out.println(c13);
		System.out.println(c14);
		System.out.println(c15);
		System.out.println(c16);
		
		char c21 = 'a';
		/*
		    取出c21里的字符a用其数值‘97’与7做运算得到结果104,
            存入char类型的变量里,打印出来是104对应的字符H		
		*/
		char c22 = (char)(c21 + 7);
		System.out.println(c22);
    }
}

TypeDemo04

/*
   基本数据类型之布尔类型的学习
   类型名:boolen
   值: true或 false
   作用:通常用于逻辑运算,true表示正确,false表示错误
   逻辑运算:一般用于流程控制语句,表示条件成立。

*/


public class TypeDemo04{
	public static void main(String[] args){
		boolean f1 = true;
		boolean f2 = false;
		System.out.println(f1);
        System.out.println(f2);
        boolean f3 = 1<2;
		System.out.println(f3);
		
	}
}

TypeDemo05

/*
   字符串类型:String, 引用数据类型之一,是最常用的引用类型。
   赋值特点: 双引号引起来,里面有0个以上任意字符。
    字符串可以做拼接操作:使用+号, 
      注意:+号前后只要有一个字符串类型,那就一定是拼接,
	        拼接结果是字符串类型。

*/


public class TypeDemo05{
    public static void main (String[] args){
		String myName = "lucy";//四个字符
		String str = "";//空字符串,字符长度为0
		String space = " ";//字符串里面只有一个字符,是空格
		String str1 = " 你是最棒的 ";//str1长度是7
		String str2 = "你 好";//str1长度是3
	
	    System.out.println(myName);
		System.out.println(str);
		System.out.println(space);
		System.out.println(str1);
		System.out.println(str2);
		
	    System.out.println("---字符串的拼接---");
		String s1 = "中";
		String s2 = "国";
		String s3 = s1 + s2; //"中国"
		System.out.println(s3);
		String s4 = s3 +"是最棒的";// "中国是最棒的"
		System.out.println("s4的值:"+s4); //s4的值:中国是最棒的
		
		String r1 = 1+1+"2"+3+4;
		System.out.println("r1的结果"+r1);//r1的结果:2 2 3 4
		
		String r2 = 1+2+"3"+(4+5)+5*6;
		System.out.println("r2的结果"+r2);//r2的结果:3 3 9 30
	}
}

TypeTransform01

/*
    类型转换: 基本数据类型之间可以进行转换。
	  细分为:
		1.自动类型转换(隐式类型转换)
		   取值范围小的数据类型想取值范围大的数据转换
		   自动发生,不需要我们进行操作。
		   取值范围从小到大排序:
		       byte-->short(char)-->int-->long-->float-->double、
			   
		2.强制类型转换	   
			   取值范围大的数据类型想取值范围小的数据转换
			   注意:转换过程中,有可能发生精度损失或溢出
			   语法: 小范围类型名 变量=(小范围类型名)大范围变量
*/


public class TypeTransform01{
	public  static void main(String[] args){
		byte b1 = 10;
		// b1变量里存的是8位二进制的10,存入s1时自动变成16位二进制的10
		short s1 = b1;
		// s1变量里存的是16位二进制的10,存入n1时自动变成32位二进制的10
		int n1 = s1;
		// n1变量里存的是32位二进制的10,存入n1时自动变成64位二进制的10
		long n2 = n1;//32位的int变成64位的long
		double d1 = n2;//long类型的10转成的double类型的10.0
		
		System.out.println("-----强制转换类型-----");
		double d10 = 3.14;
		long n10 =(long) d10;//强制转换,精度损失。3.14变成3,丢失小数点后数据
		int n11 = (int)n10; //强制转换,64位的3转成了32位的数字3、
		
		int n12 = 32767;//short最大值
		short s11 = (short)n12;//编译期间,编译器只检查语法,不考虑变量
		
		System.out.println("short类型的s11的值"+s11);
		
		int n13 = 32768; //0000000 00000000 10000000 00000000
		
		short s12 = (short)n13;//强制转换,发生溢出(值改变了)
		System.out.println("s12的值"+s12); //-32768
		
		byte b11 =(byte) s12;//强制转换类型
		System.out.println("b11的值"+b11);//b11为0
		
		/*注意: int类型的字面量,如果没有超出 byte,short char的范围时,
		是可以直接给这些类型的变量进行赋值,因为底层会自动将前面的0或1截断。
		*/
		byte b100 = 10;//128
		short s100 = 30000;//32767
		char c100 = 6000;//65535
		byte b101 = (byte)128;//超范围就需要强制转换
		
	}
}

SymbolDemo01

/*
  运算的注意事项:
    1. 各种类型进行混合运算是,都是先自动转成其中取值范围最大的那种类型,在做运算。
	2. byte,short,char,在做运算时,会优先转成int类型做运算。
	   如果有其他取值范围大的类型,会选择范围最大的哪种类型。
	3. 运算时,有可能是溢出运算。(封闭式运算)
	     最大值+1,就变成最小值
		 最小值-1,就变成最大值
		 
		 
		 
		 
*/


public class SymbolDemo01{
	public static void main (String[] args){
		byte b1 = 10;
		byte b2 = 20;
		int b3 = b1 + b2;
		byte b4 = (byte)(b1+b2);//结果是int 将int强转为byte。
		
		int n1 =100;
		long n2 = 10;
		long n3 = n1 -n2;//int n1先转为long类型,然后和n2做运算,结果是long类型
		
		byte num1 =2;
		byte num2 = 127;
		byte num3 =(byte) (num1*num2);//溢出
		System.out.println("num3"+num3);//-2
		
		long num4 = 10;
		int num5 = 4;
		/*两个整数在做出发运算时,实际上是结果取整数部分,去掉小数
		long num6 =num4/num5;
		*/
		long num6 =num4/num5;
		double num7 = 10.0;
		int num8 = 4;
		/*除法运算时,有一个浮点类型,就是真正的浮点运算*/
		double num9 = num7/num8;
		
		/*  % : 取模运算(求模,取余数)*/
        long num10 = 20;
         int num11 = 6;
		 long num12 = num10%num11;
		 System.out.println(num12);
		 
		

		
	}
}

SymbolDemo02

/*
   算数运算符之 自增自减运算符
    ++:
	  符号在变量前:先加后赋值
	                变量先自增1,然后将变量的新值赋值给表达式
	  符号在变量后:先赋值再加
	                 先将变量的值赋值给表达式,然后变量自增1
    
	--:
	  符号在变量前:先减后赋值
	                变量先自减1,然后将变量的新值赋值给表达式
	  符号在变量后:先赋值再减
	                 先将变量的值赋值给表达式,然后变量自减1
					 
	简而言之:
	   符号在前,先运算后赋值
	   符号在后,先赋值后运算
	   
	   int i = 0;
	   int m = (i++);
	   int n = (++i);

*/
public class SymbolDemo02{
	public static void main(String[] args){
		int i = 10;
		i++;
		System.out.println(i);//11
		
		int m = 100;
		++m;
		System.out.println(m);//101
		
		int n = 2;
		--n;
		System.out.println(n);//1
		--n;
		System.out.println(n);//0
		
		/* 上述代码,不管自增自减,输出语句都是里面的变量,
		    因此就是自增自减*/
			
		/* 当自增自减式子参与运算,就要考虑注释了*/	
		int x = 1;
		int m5 = x++;
		System.out.println("x的值"+x);//2
		System.out.println("m的值"+m);//1
		x = 5;
		m = ++x;
		System.out.println("x的值"+m);//6
		System.out.println("m的值"+m);//6
		
		x = 5;
		//x 6  7  8  7 
		//r 6  6  8  7
		m = ++x + x++ + ++x - --x;
		System.out.println("x的值"+m);//7
		System.out.println("m的值"+m);//13
		
		int y = 5;
		int z = 6;
		//变量  y=6 z=7 z=8 y=5  z=7
		//表达式 5   6   8    5   8
		z = y++ + z++ + ++z +--y +z--;
		System.out.println("y的值"+y);//5
		System.out.println("z的值"+z);// 32
		
		
	}
}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值