Java学习(一)

一.Java转义字符

常用转义字符:

  • \t:一个制表位,实现对齐功能
  • \n:换行
  • \\:一个\
  • \":一个"
  • \':一个'
  • \r:一个回车

代码学习描述: 

//演示转义字符的使用
public class ChangeChar {
	//编写一个main方法
	public static void main(String[] args) {
    	//\t :一个制表位,实现对齐功能
    	System.out.println("北京\t天津\t上海");
    	//\n :换行符
   		System.out.println("jack\nsmith\nmary");
    	//\\ :一个\
    	System.out.println("C:\\\\Windows\\\\System32\\\\cmd.exe");
    	//\" :一个"
    	System.out.println("轶点点说:\"要好好学习\"");
    	//\' :一个'同理
    	//\r :一个回车,前几个字会被替换
    	System.out.println("嗯小铁的学习博客\r轶点点");
    	//\r\n :回车加换行,不会替换
    	System.out.println("嗯小铁的学习博客\r\n轶点点");
	}
}

运行结果展示:

 二.注释介绍

1.单行注释//
2.多行注释/* 注释文字*/,但注意不能继续嵌套多行注释
3.文档注释

   注释内容可被JDK提供的工具javadoc所解析,生成一套以网页文件形式体现的该程序的说明文档,一般写在类。

格式:javadoc   -d   文件夹名   -xx   -yy   文件名.java

xx,yy为所用到的javadoc标签

eg./**

        *@author   轶点点

        *@version   1.0

     */

  javadoc  -d  d:\\file  -author  -version  Comment.java 

javadoc标签汇总

三.DOS命令(了解)

常用dos命令:

     1.查看当前目录有什么

        dir  或 dir d:\abc2\test200

     2.切换到其他盘下:盘符号cd

        案例演示:切换到c盘  cd/D  c:

     3.切换到当前盘的其他目录下(使用相对路径和绝对路径演示)

     相对路径:从当前目录开始定位,形成的一个路径。..\表示返回上级

     绝对路径:从顶级目录开始定位,形成的路径

        案例演示:cd  d:\abc2\test200

                          cd  ..\..\abc2\test200

     4.切换到上一级

        案例演示:cd .. 

     5.切换到根目录:cd\

     6.查看指定目录下的所有子级目录tree

     7.清屏cls

     8. 退出DOS:exit

     9.创建目录:md,删除目录:rd,拷贝文件:copy,删除文件:del,输入内容到文件:echo,剪切:move。

四.变量

变量是程序的基本组成单位,包括三个基本要素(类型+名称+值)

class Test{
     public static void main(String []args){
           int a=1;
           int b=3;
           b=89;
           System.out.peintln(a);
           System.out.println(b);
     }
}

五.程序中“+”的使用

     1.当左右两边都是数值型,做加法运算

     2.当左右两边有一方为字符串,做拼接运算

     3.运算顺序从左至右

       eg.下面代码输出什么?

         System.out.println(100+98);//198

         System.out.println("100"+98);//10098

         System.out.println(100+3+"hello");//103hello

         System.out.println("hello"+100+3);//hello1003

六. 数据类型  

1.整数类型

类型存储空间范围
byte[字节]1字节-128~127
short[短整型]2字节-2^15~2^15-1

int[整型]

4字节-2^31~2^31-1
long[长整型]8字节-2^63~2^63-1

细节注意:

  1.整型常量默认int型,声明long类型常量需后加大写或小写的L,但int n=3L是错误的,空间减少,可能会有损失 

  2.bit是计算机中最小储存单位,byte是计算机中基本储存单元,1byte=8bit

 2.浮点类型

类型存储空间范围
单精度float4字节-3.403E38~3.403E38
双精度double8字节-1.798E308~1.798E308

细节注意:

  1.浮点数在机器中存放形式,浮点数=符号位+指数位+位数位

  2.尾数部分可能丢失,小数都是近似值

  3.浮点型常量默认为double型,声明float型常量,须后加大写或小写f。

     举几个例子  float n=1.1    //false

                         float n=1.1f    //true

                         double n=1.1    //true

                         double  n=1.1f    //true

  4.浮点型常量有两种表示形式

     十进制数形式:如:5.12    512.0f    .512

     科学计数法形式:如:5.12e2 [5.12*10的2次方]

                                         5.12E-2 [5.12/10的2次方]

  5.double型比float型更精确

  6.浮点数使用陷阱

    eg.2.7和8.1/3进行比较

    代码表示:double num1=2.7;

                      double num2=8.1/3;   //2.7

                      System.out.println(num1);   //2.7

                     System.out.println(num2);   //接近2.7的一个小数,而不是2.7

//得到一个重要使用点:当我们对运算结果是小数的进行相等判断时,要小心,应当一两个数的差值的绝对值,在某个精度范围内判断

                      if(Math.abs(num1 - num2)<0.0001){

                            System.out.println("差值非常小,满足规定精度内");

                     }

ps.java API文档,直接索引法

API:应用程序编程接口

Java类的组织形式:

3.字符型

字符类型可以表示单个字符,字符类型是char,char是两个字节,可以存放汉字,多个字符使用字符串String

使用细节:

1.字符常量用单引号' '括起来

2.允许使用转义字符

3.char本质是一个整数,输出时是Unicode码对应的字符

//演示char的基本使用
public class char01{
     //编写一个main方法
      public static void main(String[] args){
          char c1 = 'a';
          char c2 = '\t';
          char c3 = '轶';
          char c4 = '97';//说明:字符型可以直接存放一个数字
          System.out.println(c1);
          System.out.println(c2);
          System.out.println(c3);
          System.out.println(c4);//当输出c4时,会输出97表示的字符a
     //char类型可以进行运算,相当于一个整数,因为它都对应有Unicode码
          System.out.println('a'+1);//107
   //检测
          char c5 = 'b'+1;//98+1=99
          System.out.println((int)c5);//99
          System.out.println(c5);//99对应的字符c
       }
}

4.布尔类型

布尔类型也叫Boolean类型,其数据只允许取值true和false,无null,占一个字节,适用于逻辑运算if条件控制语句,while循环控制语句,do-while循环控制语句,for循环控制语句

​
//演示char的基本使用
public class char01{
     //编写一个main方法
      public static void main(String[] args){
          boolean ispass = true;
          if(ispass==true){
            System.out.println("通过");
          }
          else{
            System.out.println("不通过"); 
          }
      }
}

​

 注意:不可以以0或非0的整数代替true or false,与C语言不同

七.数据类型转换

(一).自动类型转换 

          精度小的类型自动转换为精度大的类型

          char-->int-->long-->float-->double

          byte-->short-->int-->long-->float-->double

          例:int  a = 'c';//true,字符型可以自动转换为int

                 double d = 80;//true

      注:

        1.有多种类型的数据混合运算时,系统首先自动将所有的数据转换成容量最大的数据类型,然后再计算

例如:int n1 = 10;

           float d1 = n1+1.1;//false,因为n1+1.1为double类型,高精度给了低精度

    订正float d1 = n1+1.1f;//true

        2.(byte,short)和(char)之间不会互相自动转换。

           当把具体值赋给byte,先判断数的范围,在范围之内的话也可

例如:byte b1 = 10;//范围为-128 ~ 127,true

          int n1 = 1;

          byte b2 = n1;//false,若把变量赋值给byte,则判断类型,显然类型不一致

          char c1 = b2;//false,byte不能转换成char

        3.byte,short,char三者间可以计算,计算是首先转化为int型

例如:byte b2 = 1;

           byte b3 = 2;

           short s1 = 1;

           short s2 = b2 + s1;//false

           int s2 = b2 + s1;//true

           byte b4 = b2 + b3;//false

           int b4 = b2 + b3;//true

         4.boolean不参与转换
         5.自动提升原则:表达式的结果类型,自动提升为操作数中最大类型

(二).强制类型转换

          自动类型转换的逆过程,将容量大的数据类型转化为小的,使用是要加强转符( ),可能造成精度降低或溢出,且强转符只针对最近的操作数有效,用小括号提升优先级。

(三).基本数据类型转为String字符串

          语法:将基本类型的值 +" "即可

          例如:int n1 = 100;

                     float n2 = 1.1f;

                     String str1= n1+" ";

                     String str2 = n2+" ";

(四).String字符串转为基本数据类型

          语法:通过基本数据类型的包装类调用parseXX方法即可

          例如:int n1 = Integer.parseInt("123");

                    double d1 = Double.praseDouble("123.1");

                    float f1 = Float.praseFloat("123.45");

                    System.out.println(s1.charAt(0));//解读:得到s1字符串中的第一个字符

         在将String转换为基本类型是,要确保String类型可转换为有效数据,比如可将"123"转化为整数,但无法将"hello"转化为整数,此时会显示格式错误,会抛出异常

八.运算符

       一种特殊符号,用于表示数据的运算,赋值和比较

(一).算术运算符

            +,-,*,/,%(取余),++,--

前自增先运算,后取值a=2;b=++a;

a=3;b=3;

后自增先取值,后运算a=2;b=a++;a=3;b=2;
前自减先运算,后取值a=2;b=--a;

a=1;b=1;

后自减先取值,后运算a=2;b=a--;a=1;b=2;
//除法的使用
System.out.println(10 / 4);//数学中得2.5,而Java中得2
System.out.println(10.0 / 4);//得2.5
double d=10/4;
System.out.println(d);//只看10/4得2,但要把2赋值给double,变为得2.0

//%取余的使用:本质是a % b = a - a / b * b
System.out.println(10 % 3);//得1
System.out.println(-10 % 3);//得-1
System.out.println(10 % -3);//得1
System.out.println(-10 % -3);//得-1

//++自增若作为独立语句i++,++i均可以等价为:i=i+1

//++自增若作为表达式使用
int j = 8;
int k = ++j;//等价于j=j+1;k=j;先自增后赋值
System.out.println("k="+k+"j="+j);//得9,9

int k = j++;//等价于k=j;j=j+1;先赋值后自增
System.out.println("k="+k+"j="+j);//得8,9
//练习
int i=1;
i=i++;
System.out.println(i);//得1
/*解释:这里要使用临时变量
(1)temp=i;
(2)i=i++;
(3)i=temp;*/

int i=1;
i=++i;
System.out.println(i);//得2
/*解释:这里要使用临时变量
(1)i=i++;
(1)temp=i;
(3)i=temp;*/

(二).关系运算符(比较运算符)

          结果均为boolean型,要么true,要么false,常用在if条件或循环条件中

          ==,!=,<,>,<=,>=,instanceof(检查是否是类的对象)

          关系运算符组成的表达式称为关系表达式

(三).逻辑运算符

         用于连接多个条件(多个关系表达式),最终结果也为boolean值

         短路与&&,短路或||,取反!,逻辑与&,逻辑或|,逻辑异或^

aba&ba&&ba|ba||b!aa^b
TTTTTTFF
TFFFTTFT
FTFFTTTT
FFFFFFTF

        &&与&的使用区别 

        &&:若第一个条件为false,则第二个条件不会判断,结果为false

        &:无论第一个条件是否为false,后面的条件仍会判断

        ||与|的使用区别 

        ||:若第一个条件为true,则第二个条件不会判断,结果为true

        |:无论第一个条件是否为true,后面的条件仍会判断

        ^异或: a^b,当a,b不同时,结果为true,否则为false

//练习
int x=5;
int y=5;
if(x++==6 & ++y==6){
x=11;
}
System.out.println("x="+x+"y="+y);//得6,6,若变为&&得6,5

int x=5;
int y=5;
if(x++==5 | ++y==5){
x=11;
}
System.out.println("x="+x+"y="+y);//得11,6,若变为||得11,5

boolean x=true;
boolean y=false;
short z=46;
if((z++==46)&&(y=true))z++;//注意这里y=true是赋值,结果为true
if((x==false)||(++z==49))z++;
System.out.println("z="+z);//得50

(四).赋值运算符

          基本赋值运算符: =

          复合赋值运算符: +=,-=,*=,/=

          特点:1.运算顺序从右往左

                     2.赋值运算符左边只能为变量,右边可以为常量值,变量或表达式

                     3.复合运算符会进行类型转换

                         byte b=3;

                         b+=2;//按理上等价为b=b+2,实际上真正等价于b=(byte)b+2

(五).三元运算符

          语法:条件表达式?表达式1:表达式2;

          规则:若条件为true,结果为表达式1;若条件为false,结果为表达式2

int a=10;
int b=99;
int result = a>b ? a++:b--;
System.out.println("result="+result);//这里为先赋值后减法得99,若改为--b,则得98
//注意:表达式1,2要为可以赋值给接受变量的类型,或可以自动,强制转换

//三个数中选最大值
int max1=n1>n2?n1:n2;
int max2=max1>n3?max1:n3;
System.out.println("最大数="+max2);
//两句转一句
int max=(n1>n2?n1:n2)>n3?(n1>n2?n1:n2):n3;
System.out.println("最大数="+max);

(六).位移运算符

          <<: 符号位不变,左移

          >>: 符号位不变,右移

          >>>: 无符号右移

举一个例子:1>>2其本质为1/2/2=0

                      1<<2的本质为1*2*2=4         

(七)运算符优先级

          按表格,优先级从上到下依次降低。

          除单目运算符,赋值运算符从右向左运算外,其余均从左往右运算

.   ( )   { }    ;   ,
单目++   --   ~   !(data type)
算数

*   /   %

+   -

位移<<   >>   >>>
比较

<   >   <=   >=

==   !=

逻辑

&

^

|

&&

||

三元? :
赋值

=   *=   /=   %=

+=   -=   <<=   >>=

>>>=   &=   ^=   |=

九.标识符

          Java对各种变量,方法,类等命名时,使用的字符序列称为标识符

       规则:(必须遵守)

  1. 由26个英文字母大小写,0~9,_或$组成
  2. 数字不可以开头,如:int 3ab=1;错误
  3. 不可以使用关键字和保留字,但能包含关键字和保留字
  4. 严格区分大小写,长度无限制
  5. 标识符不能包含空格

       规范:

  1. 包名:多单词组成时,所有字母都小写,如aaa.bbb.ccc
  2. 类名,接口名:多单词组成时,所有单词的首字母大写,如XxxYyyZzz
  3. 变量名,方法名:多单词组成时,第一个单词首字母小写,第二个单词开始,每个单词的首字母大写,如xxxYyyZzz
  4. 常量名:所有字母都大写,多个单词间用_连接,如XXX_YYY_ZZZ

       关键字和保留字:

关键字定义数据类型

class,interface,enum,byte,short,int,long,

float,double,char,boolean,void

定义数据类型值true,false,null
定义流程控制

if,else,switch,case,default,while,do,for

,break,continue,return

定义访问权限修饰符private,protected,public
定义类,函数,变量修饰符abstract,final,static,synchronized
定义类与类间关系extends,implements
定义建立实例及引用实例,判断实例new,this,super,instanceof
定义异常处理try,catch,finally,throw,throws
定义包package,import
定义其他修饰符native,strictfp,transient,volatile,assert
保留字现版Java未使用,以后可能作为关键字

byValue,cast,future,generic,inner,operator,

outer,rest,var,goto,const

 十.键盘输入语句

        接受用户输入的数据,需要一个扫描器(对象)即Scanner

import java.util.Scanner;
public class input{
    public static void main(String[ ] args){
       Scanner myScanner = new Scanner(System.in);
       System.out.println("请输入名字");
       String name = myScanner.next();
       System.out.println("请输入年龄");
       int age = myScanner.nextInt();
       System.out.println("请输入薪水");
       double salary = myScanner.nextDouble();
       System.out.println("以下为用户信息");
       System.out.println("name="+name+"age="+age+"salary="+salary);
       }
}

十一.进制      

          二进制:0~1,满2进1,以0b或0B开头 

          八进制:0~7,满8进1,以数字0开头 

          十进制:0~9,满10进1

          十六进制:0~9及a(10)~F(15),满16进1,以0x或0X开头,a~f不区分大小写

十二.原码反码补码 

  1. 二进制最高位为符号位,0为正数,1为负数
  2. 正数的原码,反码补码都一样
  3. 负数的反码等于原码符号位不变,其余位取反
  4. 0的反码补码都为0
  5. 负数的补码等于其反码加1
  6. Java没有无符号数
  7. 计算机都以补码的方式运算
  8. 看运算结果要看其原码
  • 13
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值