2周突刺

------------恢复内容开始------------

java   程序运行机制

  属于编译型和解释型。

  源程序(.java文件)—(javac)—》java编译器——》字节码(.class文件)——》类装载器——》字节码校验器——》解释器——》操作系统平台

IDE  集成开发环境

注释   

   //     单行注释 

       /*  */  多行注释

      /** (每一行都默认*) */   文档注释——》JavaDoc(它从程序源代码中抽取类、方法、成员等注释形成一个和源代码配套的API帮助文档。是用来生成自己API文档的)才涉及

标识符

  Java中所有的组成部分都需要名字。类名变量名以及方法名都被称为标识符。

  不能使用关键字作为变量名或者方法名

  大小写敏感

  注意点:

    首字母   都应以字母(A-Z或者a-z),美元符($),或者下划线(-)开始

     其余      可以是字母(A-Z或者a-z),美元符($),或者下划线(-)或数字的任何字符组合

数据类型

  java(强类型语言)分为两大类

       基本类型(primitive  type)        引用类型(reference type)

 

 

float   和 long 要在最后加首字母  eg:float  number = 50.1F; 

 char 只能存一个字母或者字

整数拓展       进制   前缀     0b二进制,0八进制,0x十六进制      eg:int  i3 = 010;即为八进制的10即十进制的8

浮点数扩展    float  舍入误差,只是个约数        最好完全避免使用float进行比较,用BigDecimal (数学工具类)

字符拓展     强制转换 ,char  c1 =“a”;    int(c1)    所有的字符本质还是数字   Unicode表

转义字符           \t  制表符,一个Tab键四个空格     \n 换行

类型转换   

  由于java是强类型语言,所以要进行有些运算的时候,需要用到类型转换。

  运算中,不同类型的数据先转化为同一类型,然后再进行运算。

    小数的优先级高于整数

  强制转换       (类型 )变量名          高到低       避免 内存溢出

      注意点:   1.不能转换布尔类型

           2.不能把对象类型转换为不相干的类型

           3.由高转低可能存在内存溢出或者精度问题(eg: (int)23.7==23      (int)-45.89f==-45)

  自动转换    无格式,double  i=变量名    由低到高

  类型转换拓展:         jdk7之后新特性,数字之间可以用下划线分割                int  money = 10-0000-0000;    sout=1000000000

           操作比较大的数字的时候,为了避免溢出,先将一方转换为Long类型,所有数值都会自动提升到long类型,就不存在溢出问题;

------------恢复内容结束------------

变量

  不进行初始化——布尔类型默认是false,int是0,float是0.0,除了基本类型其余(class,String,interface)默认值都是null

  局部变量(方法中的变量)必须声明变量类型和初始值

  实例变量(成员变量):类方法外的变量,不需要初始化

  类变量(static)从属于类,与类一起消失一起出现     eg:static  double  salary = 2500;

常量  

  final修饰,不可变,常量名使用大写字母    

  修饰符不存在先后顺序    static final  double  PI =3.14;   等价于    final  static  double  PI =3.14;可直接引用,列如游戏窗口设置

变量命名规范

  见名知意

  类名                      大驼峰

  类成员变量,局部变量。方法名    小驼峰

  常量             大写字母和下划线

 

 

运算符 operator

Math类

ctrl + D  复制当前行到下一行

=  赋值

== 等于

 

 自增自减运算符

  b=a++   先把a的值赋给b,a再+1

  c=++a    a先加1在赋值给c

位运算符

  &    与      同一则一,其余为零

  |      或     有一则一,其余为零

  ^  异或  一零为一,其余为零

  ~ 非   相反

a+b+“” 先算a+b   “”+a+b   把a和b转为字符串

  x  ? y:z     x为true  则结果为y,否则为z

 

包机制

一般用公司域名倒置作为包名(防止命名空间重置)

import 导包时在末尾加个  .*    通配符,导入包下所有的类

 

 

流程控制

Scanner

  next()不能得到带有空格的字符串,返回空格之前的所有字符 ,会以空格作为分隔符或者结束符

  nextLine()以enter作为结束符,返回输入回车之前的所有字符,可以获得空白

  Scanner  sc =new Scanner(System.in);     最后要   sc.close();关闭Scanner,结束后台防止占用资源     sc.hasNextInt   是否有输入的值,有增等价于  true      输入类型以末尾单词判定

equals  判断字符串是否相等       s.equals("hello");

 

switch    变量类型可以是byte,short,int或者char,javase7开始支持String类型    case标签必须为字符串常量或者字面量。

    case穿透,最好每条case语句后用break结束  都没有最后用default  可以不添

反编译 java-----编译完为  class文件  idea能看源码

for  支持迭代的一种通用结构,是最有效,最灵活的循环结构。执行次数在执行前就确定了       

  快捷键    100.for    直接生成   for(int  i = 0; i <100; i ++) {  }

         for的死循环    for(; ; ){}

 

方法(小驼峰命名)

  修饰符   返回值类型   方法名(参数类型  参数名){   return  返回值;}

  static 可以直接调用    void无返回值

  是语句的集合,在一起执行一个功能;

  方法是解决一类问题的步骤的有序组合;

  方法包含于类和对象中;

  方法在程序中被创建,在其他地方被引用;

  一个方法一个功能(原子性);

return   可以终止方法,   return 0;

java只有值传递

方法重载

  一个类多个方法,方法名一样,参数(类型,个数,排列顺序)不一样

命令行传参    带包名

 

可变参数(不定项参数)

  在方法声明中,在指定参数类型后加一个省略号...

  一个方法中只能指定一个可变参数,他必须是方法的最后一个参数。任何普通参数必须在他之前声明。  eg:   psv  变量名(int  i  ,double...y){}

递归

  要有边界值,防止死循环

 

 

 

 

数组

  定义     类型[]   数组名        int[] numbers       声明一个数组不存在,只有new一个才创建而存在  ,  int[ ]   numbers  =  new  int[10];  ——>  这里面可以存放10个int 类型的数字  ,赋值(默认值为0)

  使用new操作符来创建数组,      类型[ ]  数组名   =  new  类型  [数组名]

  同一数组内容类型必须一致

  长度   名.length

  数组一旦被创建,大小是不能更改的,长度是固定的;

  数组变量属于引用类型,通过索引访问,索引越界会报错(一共十个数访问第十一个),

  数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量

  数组对象本身是在堆中的

小结   

  数组是相同数据类型(数据类型可以是任意类型)的有序集合

  数组也是对象。数组元素相当于对象的成员变量

  数组长度是确定的,不可变的。如果越界:ArrayIndexOutOfBoundsException  数组下标越界异常!

数组初始化

  静态     int [ ] a ={1,2,3};

  动态     int [ ] b =  new  int [ 10 ];  分配十个空间,通过  b [ i]=数;进行赋值

  

数组的使用

  反转数组    public  static int[ ] reverse ( int [ ] arrays ){

        int[ ]  result = new int[arrays.length];

        for(int i = 0 ,j = result.length-1; i < arrays.length; i++,j--){

          result[ j] =array[i];

        }

        return   result;

       }

  调用  psvm{

      int[ ]  reverse = reverse(arrays);

      printINt(reverse); 另写一个遍历打印的方法,数组不能直接被输出。

多维数组

  int[ ] [ ]   二维

      

  

  

 

 

  

  

      

 

posted @ 2022-03-12 20:34  分析虎  阅读(36)  评论(0)    收藏  举报