0
点赞
收藏
分享

微信扫一扫

JAVA基础笔记

律楷粑粑 2022-02-17 阅读 53

1.8个bit(位)为一个单位 byte 字节;计算机最小单位为字节

2.8进制是以0开头的;16进制是以0x开头。

3.负数的二进制就是正数的二进制取反加1(用一个字节运算)

      -6:的二进制     

        00000110

        11111001

      + 00000001

      = 11111010     

4、二进制都是1,对应的十进制是-1

5.数值型,整数类型: byte   short     int       long

                      1       2        4         8       字节

          浮点类型:float   double

6. 6在内存中是:(int)

  00000000 00000000 00000000 00000110

   byte 

  00000110

7. char 类型在内存中占2个字节;一个中文也是2字节。

8.&与&&的区别

   &;两边都参与运算

   &&;当左边为false ,右边不参与运算

9.|和||

|:两边都参与运算

||:当左边为true,右边不参与运算

10.左移:就是乘以2的次幂运算  移几位就是几次幂

   右移:就是除以2的次幂运算  移几位就是几次幂(右移时,原最高位是神魔,空位就补什么)

   >>>无符号右移:无论原最高位是神魔,空位都补零

11.与&:

   可用于获取二进制中的有效位1

---------------------------------------------------------

第一章

1.Java Runtime Environment (JRE)JAVA运行环境(适用于只运行不开发) 

2.Java Development Kit      (JDK)Java开发工具包(适用于开发java)

3.1.JRE内部有一个java虚拟机(Java Virtual Machine ,JVM)以及一个标准的类库(Class Library)

  2.JVM是一个虚构出来的计算机,能够仿真模拟各种计算机功能,有自己完善的硬件架构,

    如:处理器,堆栈,寄存器等,还具有相应的指令系统

  3.java虚拟机负责运行一个java程序,主要任务是装载class文件并且解释执行其中的字节码

    启动一个java程序时,一个计算机实例也就诞生了;退出程序时,这个虚拟机实例也就随之消亡了

               3--------------->3

3.断点调试  f6

4.java虚拟机实例通过调用某个初始类的main()方法来运行一个java程序

-----------------------------------------------------------

第二章

JAVA练习 

JAVA各章习题及答案http://wenku.baidu.com/link?url=dC27PBAiBgodY23GLj6S2wYGKcnxDJ3AC2m1JMyyB3aUhaWcPzVZBvh5INiBEE0bEEVs_rc8XX9q-972-WilJOBVtoXDN_H0c6A4vO4wBp7

JAVA编程题全集(100题及答案)http://wenku.baidu.com/link?url=reXf0hNlOpGBSi3iYXAHOqwex_DUYIF4a2RRN2d7ex1zN50qjel3LGB6hMpTp3vrt1qZ5qLOTxJIfn4WA33u54aCKgylkyWVxoZR9C8E8Bq

------------------------------------------------------------

第三章

​http://www.docin.com/p-904975161.html ​

​​ http://wenku.it168.com/d_000661992.shtml ​​

------------------------------------------------------------

第四章

多态和继承

​​ http://wenku.baidu.com/link?url=4kZCAq87BmnGJcjYDZnn751D2qLjzrHj0kKy9VhLSjraFEu0OB9_RJQYB2Z-gm8jpLkOL_FZB-PB4ufuZ7HsOGIaaQ9XcihDo7uHGf9aC7G ​​

------------------------------------------------------------

第五章

------------------------------------------------------------

第六章

  方法method   车辆vehicle   customer(顾客)与consumer(消费者) data数据

   界限bounds  类相等equals

1.类 class  对象 object  实例instance  索引 index  价值value 抽象的abstrast

2.构造器的作用:完成对象的实例化(创建对象)和成员变量的初始化 

3.通常一个类中不止一个构造方法,而是有多个不同参数的构造器,用户可根据需要选择不同构造器创建对象

4所有的对象都是通过构造器来创建的

  也可以说任何对象都是通过内存分配操作符new创建和开辟内存空间,(在堆中)

5 java中每个类都至少有一个构造器   构造器(Constructor)

6 垃圾回收机制仅仅作用于堆内存,与栈内存无关

  a对象的引用被赋值为null   b一次性使用的匿名对象     c.超出生命周期

7.面向过程思维方式:分析出解决问题的步骤,然后一步步用方法实现,最后通过方法调用解决问题

  面向对象思维方式:把问题域分解成各个对象,对象赋予相应的属性和行为,通过对象之间的协调解决问题

8.类

  类:是一组具有相同属性和行为的对象的抽象       (类是抽象)

  作用: 用来创建对象,对象是类的一个实例        (对象是实例化)

9.类和对象的关系

  抽象和具体的关系

  每个类在某一时刻都有零个或多个实例,类是生成对象的模板

  *一个类定义了那些数据来描述属性,每一个对象里有相应的属性值数据

  *一个类通过一系列方法来定义行为,每一个对象能激活这些方法

10.封装:作用,意义  ??

   继承:作用,意义  ??

   多态:作用,意义  ??

11.成员变量: 修饰符,类型,属性名=[默认值]

   方法    : 修饰符,返回值类型,方法名(形参列表){语句}

   类变量  : 用static修饰的成员变量,他们在类被载入时创建,只要类存在,static变量就存在

   实例变量: 类体中声明的成员变量,即非static的属性,也是全局变量

   局部变量: 方法体中声明的变量或是方法的形参,只在方法调用过程中有效,方法调用结束后失效

   静态变量; 在类中声明为static的属性

12 this就代表对象,哪个对象调用了this所在函数,this就代表哪个对象

   一般函数不可以调用构造函数,构造函数可以调用一般函数

                               person(String n){name = n;cry();}

    调用其他构造函数的语句,必须定义在构造函数的第一行(所以只能调用一个构造函数),原因:初始化动作要先执行

13 可以用this标识哪个变量是成员变量,这个标识可以省略不写;但是,当局部变量和成员变量同名时,必须用this来标识成员变量 

------------------------------------------------------

第七章

1.子类继承父类的所有属性和方法,同时又可以增加自己的属性和方法

2.java只能单继承 ,一个子类对一个父类;一个父类对多个子类

3.子类是父类,父类是子类(不是final的)

4.子类实例化时,先实例化其父类,再实例化子类(先调用父类构造器,在调用子类构造器)

5.子类创建构造器时,必须调用父类的构造器(使用super关键字)

6.Ouer外访问Inner                      *         Ouer内访问Inner

  Outer o = new Outer();               *         Inner i = new Inner();

  Outer.inner oi = o.new  inner();     *        

7.一个类只要提供了构造函数,就可以产生多个对象

8.接口可以被多重implements,抽象类只能被单一extends

-----------------------------------------------------------

第八章

   (ioexception)IO流异常。一般在读写数据的时候会出现这种问题。

            java内部数据的传输都是通过流,或者byte来进行传递的。

            就行一个文本文件。你可以通过in流写入到java中,

            同时也可以通过out流从java(计算机内存中)返还给具体的文件。

   (runtimeexception)运行时异常

  2.异常记录:

3.方法重载和重写的区别

   1.重写必须继承,重载不用。

   2.重写的方法名,参数数目相同,参数类型兼容,重载的方法名相同,参数列表不同。

   3.重写的方法修饰符大于等于父类的方法,重载和修饰符无关。

   4.重写不可以抛出父类没有抛出的一般异常,可以抛出运行时异常

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

1.Object类是所有类的超类

2.public class Stu im.. Comparable<Stu>{

}

3.TreeSet 不保证顺序,但可以做默认的字典paixu

  依然不能存放重复的元素

4.&和&&的区别:

&:两边都参与运算。

&&:当左边为false。右边不参与运算。

|和 ||

| :两边都参与运算。

|| :当左边为true,右边不参与运算。

5,int a = 3, b;

b = (a++)+(++a)+(a++)*2+a+(++a); 

  // 3     5     5*2   6    7

   System.out.println("a="+a+",b="+b);//a=7,b=31

6.类型名称      字节数    取值范围

byte              1        -128~+127

short             2        -32768~+32767

int               4        -2147438648~+2147438647

long              8        -9223372036854775808~+9223372036854775807

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

JAVA公开课  笔记

7.获取class的三种方式

 一个类只有一个字节码文件,但可以创建多个对象

class对象的获取:

A:public final Class getClass()

Person p = new Person();

Class c = p.getClass();

Person p2 = new Person();

Class c2 = p2.getClass();

sop(p==p2);//false

sop(c==c2);//true

 B:数据类型的class静态属性

 Class c3 = Person.class;

 sop(c==c3);//true

 C:通过Class的静态方法

  public static Class forName(String className)

 Class c4 = Class.forName("cn.itcast.person");

 sop(c==c4);//true

  总结:自己写案例测试使用前,两种

    在开发中,一般使用第三种,因为,第三种的方式可以通过配置文件

      配置数据。灵活度较高

8、public class ReportTest {

public static void main(String[] args) {

Report r = new ReportImpl();//Report是个抽象类或者接口

r.print();

// 接着,我要使用另外的表头,正文等信息

r = new ReportImpl2();

r.print();

// 这个时候,如果你继续有新的要求,那么,你就继续添加实现类来实现Report这个打印功能即可

                //不需要改变原有实现类,这就是模板方法模式

}

}

模板方法模式:

定义一个算法的执行骨架,将具体的算法实现延迟到子类完成。

为什么会有模板方法模式?

我现在有一个需求:

要求用户做一个打印程序:规定必须打印表头,正文,表尾3部分。

我们可以用一个简单的类就实现了。

这个时候,我们好像看不到任何问题。

但是,需求是在不断的变化的。

比如说:我想在表头做一些修改,怎么办?改动代码。

过一段时间,我又想在正文添加一些内容,怎么办?继续改动代码?

这样,如果还有其他的需求,那么,最终我感觉就崩溃了。

怎么解决呢?

就可以采用我刚才说的模板方法模式改进。

改进的过程请查看代码。

总结;

模板方法模式:

抽象的骨架类,具体的实现类。

优点:

使用模板方法模式,在定义算法骨架的时候,可以灵活的实现具体的算法。

满足用户多变的需求。

缺点:

假如算法骨架有改动,就需要修改抽象类,那么,具体的实现类,也会跟着

修改。

实际应用:

需求:计算一个程序的运行时间。

定义一个GetTime类。

定义具体的实现类。

  long time = System.currentTimeMillis();//获取当期系统时间

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

-----------------------------------------------------------------------

        float f3 = 12.3f;//必须加f

        long l2 = 300000000000L;//必须加l


举报

相关推荐

0 条评论