Java随笔_2

1

    switch类型可以对int型,char类型和String类型进行判别。

2

    简洁写法,不用if进行判断。

int score =61;

boolean is = score > 60;

3

    Java逻辑运算中有长路类型的运算,如&。

   该运算计算的方式是关系式1&关系式2。

   例子:

   4<3&5*3<12

   先计算4<3为false

   再计算5*3<12为false

   false与false为false

   短路类型的运算不同,如&&

   4<3&5*3<12

   先计算4<3为false

   第一个false后不再计算进行计算,整个表达式变为false。

4

   Package在磁盘中存取时为文件名。

   导入和导出文件时可以是zip文件。

5

   静态变量是由JVM自动进行初始化。

   当Main函数与想要使用的方法在同一个类中时,使用的方法必须要加上static。

6

   类名称通常都是大写的,方法名称如何有两个单词那么第二个单词一般大写,而第一个单词是小写。

   实例化类的时候通过栈内存指向堆内存,例如:

Person per =new Person();

    per变量存储为栈内存空间,其指向为堆内存空间。

   面向对象三大特征:

   封装

   继承

   多态(重载,对象多态)

8

  Java属性和方法的封装是通过关键字private来实现。

  实现该属性用get和set方法。利用get和set方法有好处,可以在get或者set方法中加入一些输入限制。

9

   如果使用对象只使用一次,那么就可以用匿名对象,匿名对象只使用一次。比如Person这个类,Person类中有公有方法tell,匿    名使用方式如下所示:

new Person().tell();

10

   当用户自己定义构造方法后,系统不再自己生成一个没有参数的构造方法。

11

   String类型不是引用传递,传递到函数中不可以进行更改。类的对象属于引用传递,传递到函数中时可以进行更改。

12

   this在构造方法中调用另一个构造方法的时候必须要放在首行,否则编译出现错误。

class Person

{

int age;

public Person(int age)

{

this();

this.age=age;

}

public Person()

{

System.out.println("Empty");

}

}

13

   static可以节省内存。比如在一个类中,设置一个静态变量。所有的对象都有一个公有的静态变量。

   使用static方法的时候,只能访问static的属性和方法,而非static的属性和方法不能进行访问。

14

    Java只允许单继承。

15

    在子类对象实例化之前,必须先调用父类构造函数,然后再是子类构造函数。

16

    子类重写父类的方法时,需要方法名和参数完全相同。子类使用父类重写的方法时可以运用super关键字。

    被子类重写的方法不能有比父类更加严格的访问权限。

17

    访问权限:private<default<public。

    private只有在本类中进行访问,default只能在本包下进行访问,而public在整个工程下可以进行访问。

18

    重写与重载的区别:

19

    使用final声明的类不能被继承。

    使用final声明的方法不能被重写。

    使用final声明的变量不能被修改。

20

    抽象类被子类继承,子类必须重写抽象类中的所有抽象(!!!)方法。

21

    接口是一种特殊的类,里面全部由全局(static)常量(final)和公共的抽象方法组成。

    一个类可以同时继承抽象类和实现接口。

    一个接口不能继承一个抽象类,但是可以通过extends同时继承多个接口。

22

    实例化String对象的时候有两种方式:

   1:

String str = new String ("Hello");

    采用这种方式时会在内存空间开辟两个空间存储hello。

    2:直接赋值。

String str = "Hello";

    只在内存中开辟一个空间进行存储,更加节省空间。

23

     String类型进行比较的时候不要用“==”进行比较,要用equals进行比较。

     双等比较的是地址,equals比较的是内容。

String str = "Hello";

String str1 = new String ("Hello");

String str2 = "Hello";

System.out.println(str==str1);

System.out.println(str.equals(str1));

System.out.println(str==str2);

    运行结果:

24

    string内容字符串是不可更改的,最后改变的是堆内存地址的指向,String类型作为参数传递进去后无法进行更改。

    

25

    string类型中有toCharArray方法,可以将string类型转换为字符数组。

String name = "Good";

char data[]=name.toCharArray();

    charAt:从字符串中取出指定的字符。

String name = "Good";

System.out.println(name.charAt(0));

    byte:字符串和byte数组进行转换。

String name = "Good";

byte[] bytes=name.getBytes();

    indexof:返回第几个字符,看是否存在某个值,如果不存在字符,则返回-1。

String name = "Good";

System.out.println(name.indexOf(‘o‘));

System.out.println(name.indexOf(‘a‘));

System.out.println(name.indexOf("oo"));

    trim:去掉字符串的前后空格。

    subString:从字符串中取出子字符串,记住返回的是string类型。

    toLowerCase,toUpperCase:转换成小写,大写。

    endswith,startwith:返回布尔类型,判断字符串的开头结尾字符。

    replace:返回一个字符串,替换String类型中的一个字符。

26

    StringBuffer是一个缓冲区,与String类型不同的是StrnigBuffer可以进行修改。

    append:追加

    insert:插入

    indexof:返回第几个字符,看是否存在某个值,如果不存在字符,则返回-1。(与String类型一样)

    String和StringBuffer的区别:

String str ="Helloooo";

for(int i = 0;i<100;i++)

{

str+=i;

}

System.out.println(str);

StringBuffer sb = new StringBuffer();

sb.append(str);

for(int i = 0;i<100;i++)

{

sb.append(i);

}

System.out.println(sb);

    在上述代码中,使用String类需要开辟100次空间,而使用StringBuffer则不用开辟那么多次空间,因此效率比String好。

27

     StringBuilder被设计为StringBuffer的一个简易替换,在单线程的操作中,优先考虑该类,速度比StringBuffer快。

     涉及到线程安全的问题,建议使用StringBuffer。

     append:追加

     insert:插入

28

多态性:

        方法的重载与重写

        对象的多态

向上转型:程序自动完成

        父类对象=子类实例。

!!父类被重写的方法将会被改变。

B bb = new B();

A a =bb;

a.tell1();

a.tell2();

向下转型:强制完成

        子类对象=父类实例。    

欲向下转型必先向上转型。

A a =new B();

B b =(B)a ;

b.tell1();

b.tell2();

b.tell3();

使用多态性可以节省代码。 

package Test1;

class A

{

public void tell1()

{

System.out.println("A----tell1");

}

}

class B extends A

{

public void tell2()

{

System.out.println("B----tell2");

}

}

class C extends A{

public void tell3()

{

System.out.println("C----tell3");

}

}

public class Test2 {

public static void main(String[] args){

say(new B());

say(new C());

}

public static void say(A a)

{

a.tell1();

}

}

        以上代码默认使用了自动向上转换,如果不利用多态性,代码会比较复杂,如下:

public class Test2 {

public static void main(String[] args){

say(new B());

say(new C());

}

public static void say(B b)

{

b.tell1();

}

public static void say(C c)

{

c.tell1();

}

}

      如果say的参数类型有100个,那么将写100个这种类型的方法,这样写麻烦很多。

29

     instanceof 判断是否属于同一个类。

A a =new A();

System.out.println(a instanceof A);

System.out.println(a instanceof B);

A a1 = new B();

System.out.println(a1 instanceof A);

System.out.println(a1 instanceof B);

    

30

     最好不要去继承一个已经完成好的类,没完成好的类里面最好是有抽象方法。

31

     接口的使用,接口里面默认的方法是抽象方法。

package Test1;

interface USB

{

void start();

void stop();

}

class C {

public static void Work(USB usb)

{

usb.start();

System.out.println("Working");

usb.stop();

}

}

class USBDisk implements USB{

public void start() {

System.out.println("USB Start");

}

 

public void stop() {

System.out.println("USB Stop");

}

}

class Printer implements USB{

public void start() {

System.out.println("Printer Start");

}

public void stop() {

System.out.println("Printer Stop");

}

}

public class Test2 {

public static void main(String[] args){

C.Work(new USBDisk());

C.Work(new Printer());

}

}

32

System.err.println("Hello World");

33

finally:里面的代码无论发生什么都会执行。

throws:将异常抛出,将异常抛给方法的调用者来进行处理。

throw:抛出一个实例化异常。

public class Test2 {

public static void main(String[] args) throws Exception {

try {

throw new Exception("Hello");

} catch (Exception e) {

System.out.println(e);

}

}

public static void tell(int a , int b)throws ArithmeticException{

System.out.println(a/b);

}

}

自定义异常:

class Exc extends Exception{

public Exc(String msg){

super(msg);

}

}

public class Test2 {

public static void main(String[] args) throws Exception {

try {

throw new Exc("Good");

} catch (Exc e) {

System.out.println(e);

}

}

}

时间: 2024-11-10 07:29:20

Java随笔_2的相关文章

学习java随笔第八篇:封装、继承、多态

java和c#一样都是面向对象的语言. 面向对象的语言有三大特征:封装.继承.多态 封装 封装:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别. class Person2 { private String name; public void setName(String name) { this.name=name; } public String getName() { return name; } private String sex; public voi

学习java随笔第七篇:java的类与对象

类 同一个包(同一个目录),类的创建与调用 class Man{ String name; void GetMyName() { System.out.println(name); } } public class Person { public static void main(String arges[]) { Man m=new Man(); m.name="小黄"; m.GetMyName(); } } 运行结果 不同的包(不同目录目录),类的创建与调用 package Peo

学习java随笔第六篇:数组

一维数组 创建一维数组并输出 public class OneDimensionalArray { public static void main(String argas[]) { int i[]=new int[10]; for(int j=0;j<i.length;j++) { i[j]=j; System.out.println(i[j]); } } } 多维数组 创建多维数组并输出 public class MultiDimensional { public static void m

学习java随笔第九篇:java异常处理

在java中的异常处理和c#中的异常处理是一样的都是用try-catch语句. 基本语法如下 try { //此处是可能出现异常的代码 } catch(Exception e) { //此处是如果发生异常的处理代码 } finally语句 try { //此处是可能出现异常的代码 } catch(Exception e) { //此处是如果发生异常的处理代码 } finally { //此处是肯定被执行的代码 } 抛出异常 使用thows和throw语句抛出异常 public static vo

Java 随笔

Java 随笔 @purpose:随手记下基础的一些知识,这些知识都是自己以前没怎么注意的基础知识,加深印象 1. static 方法:静态方法中只能引用外部的静态属性 2. this关键字: this 关键字是不能在 static 方法或者 static 代码块中使用的 原因:static 类型的方法或者代码块是属于类本身而不属于某个对象,this 本身就代表着当前类对象,然而静态方法或者块调用的时候是不用初始化对象的. 3. 异常处理: 问题:在程序猿编码时,常常要进行异常处理,不过处理异常

学习java随笔第十一篇:java窗体程序

要开java的窗体程序,就要下载开发窗体的工具. 这里我用的是的myeclipse,可以直接在网上下载安装即可. 我用的是10.0版本的,如果需要汉化的话,可以看一下这篇文章:myeclipse.10安装和汉化方法 java窗体 package java20130629; import javax.swing.*; public class Form extends JFrame { public Form() { this.setLayout(null); JLabel jl=new JLab

Java随笔——继承

一.继承的概念 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为.在生活中就相当于老虎,狮子等属于肉食动物,兔子,羊等属于食草动物,食草动物和食肉动物又都属于动物,所以继承需要符合父类更通用,子类更具体. 二.类的继承格式 extends 关键字可以申明一个类是从另外一个类继承而来的,继承格式为: Public class 子类 extends

JAVA随笔记录

面向对象 对象是类的蓝图 类是对象的实例 万物皆对象,对象因关注而产生 特征: 分装: 继承: 多态: 抽象: 引用数据类 基本数据类型和引用数据类型的区别 基本数据类型的值放在变量中 引用数据类型的值放在对象(String)中,变量名(s)中存的是引用,指向对象 JAVA程序的运行过程 1.源文件(.JAVA): 2.通过编译器编译成字节码(.class)文件: 3.运行: 4.把.class通过类加载器加载: 5.解释器解释代码(JAVA跨平台的原因): 6.os 常量氛分为数据常量和符号常

java随笔:三大特性之继承

Java三大特性之继承 一.介绍 笔记重点:构造器.protected关键字(这个自行查阅).向上转型.private关键字(继承非常重要的要点)  复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句话中最引人注目的是"复用代码",尽可能的复用代码使我们程序员一直在追求的. 继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继