Java 学习笔记(2015.7.20~24)

Java 学习笔记(2015.7.20~24)

Java


  • Java 学习笔记(2015.7.20~24)

    • 1、StringBuffer与StringBuilder的区别:
    • 2、基本数据类型包装类
    • 3、Date、Calendar、DateFormat等与时间相关的类
    • 1、常用类String
    • 2、正则表达式
    • 3、常用类 StringBuffer 代表可变的字符序列
    • 拆箱与装箱
    • 包装类的应用
    • 匿名内部类
    • 数组
    • day11
    • day12
    • day13
    • day14

day11

  • 父类中使用public定义的方法,子类的访问权限必须是public
  • private定义的成员只能自己用
  • 覆写方法时可以扩大权限,比如default>public ,不能缩小权限,会报错
  • private方法不能被子类继承,但是可以被父类的方法调用
  • 声明成员变量,一般名字前加个m
  • 抽象类中是可以定义构造方法的
  • 在接口中的抽象方法必须定义为public权限,不写也是public
  • 向上转型,父类指向子类
  • 接口跟抽象类的异同
  • 熟悉匿名内部类
  • 接口由全局常量和抽象方法组成,所以
  • String AUTHOR = "Jensen";等价于public static final String AUTHOR = "Jensen";
  • void print();等价于public abstract void print();
  • String getInfo();等价于public abstract String getInfo();
  • Java允许一个接口继承多个接口:
    interface 子接口 extends 父接口A,父接口B,...{ }
  • 对象 instanceof 类 返回boolean类型
  • 抽象类 制作模板
  • 接口 制定标准
  • 设计模式 工厂模式
    在接口和子类之间加入一个过渡端,通过此过渡端取得接口的实例化对象,一般都会称这个过渡端为工厂类。
  • "orange".equals(className) 为什么在进行字符串判断时要把字符串常量写在前面?
    答:这样做可以避免空指向异常,比如传入的值为null时

数组

数组可以看成是多个相同类型数据组合
数组变量属引用类型

一维数组
数组的声明
int[] a;  // 建议使用这种
byte[] c;
int b[];
注意:
Java语言中声明数组时不能指定其长度

初始化
静态初始化
int b[] = new int[]{1,2,3,4,5};// 静态初始化
int[] c = {1,2,34,56,7};// 静态初始化
动态初始化

根据下标从数组中取值,下标:可以是整型常量或整型表达式
下标从0开始

在控制台打印数组中所有元素

每个数组都有一个属性length指明它的长度

排序:
 冒泡排序  选择排序  插入排序  希尔排序

排序:
 替换
 if(a[i]>=a[j]){
  int temp = a[i];
  a[i] = a[j];
  a[j] = temp;
 }

二维数组
二维数组可以看成以数组为元素的数组
声明
int[][] a
int b[][]
初始化
int b[][] =
{{1,2},{2,2,3,45,6},{2,3,6,7}};
int[][] c =
new int[][]{{1,2},{2,2,3,45,6},{2,3,6,7}};

二位数组初始化
先初始化高维
int[][] a = {{1,23,4},{1,3,4},{2222}};

day12

拆箱与装箱

int x = 30;Integer i = new Integer(x);//装箱int y = i.intValue();//拆箱

包装类的应用

  • 包装类在实际中用的最多的是将字符串变为基本数据类型的操作,例如将一个全由数字组成的字符串变为一个int或float类型的数据。
String str1 = "30";String str2 = "30.3";int x = Integer.parseInt(str1);float f = Float.parseFloat(str2);

匿名内部类

接口本身是不能直接进行实例化的,所以在接口实例化后要有一个大括号,在其中编写具体的实现方法。

匿名字符串放在 data segment 里面

字符串,length() 方法
对象,length 属性

day13

1、常用类String

2、正则表达式

  • 格式不用记
  • 句点.表示单个字符
  • 方括号[]表示可能出现字符集里的单个字符
  • 括号()可表示多个字符
  • 大括号{}表示次数
  • 转义字符“\”
  • 一般正则表达式是由通配符和固定字符组成
  • 栗子:
    • 字母 _ 数字 大于6小于10位
      "\w{6,10}"
    • 邮箱:[email protected]
      "\[email protected]\w+\.\w+"
    • 手机:以13 15 18 17 开头   11位
      "[1][3578]\d{9}"

只要记住:
Pattern p = Pattern.compile("a*b");
Matcher m = p.matcher("aaaaab");
boolean b = m.matches();

3、常用类 StringBuffer 代表可变的字符序列

String
StringBuffer

reverse()

注意:StringBuffer默认容量16;
如果传入的数据量大于当前容量
StringBuffer容量将发生变化 2*之前容量 + 2

day14

1、StringBuffer与StringBuilder的区别:

  • StringBuffer  :同步 线程安全  效率较低
  • StringBuilder :异步 不安全    单线程效率高

2、基本数据类型包装类

  • 基本数据类型 包装类
    boolean Boolean
    byte Byte
    char Character
    short Short
    int Integer
    long Long
    float Float
    double Double
  • Integer
    • public static int parseInt(String s)
    • public static Integer valueOf(String s)
  • java5.0之后有自动拆装箱功能,如下
Integer i = new Integer(100);int j = i + 100;// 自动拆箱int k = 100;Integer m = k;  // 自动装箱
  • Character
    isUpperCase(char ch)       判断字符是否是大写字母
    isLowerCase(char ch)       判断字符是否是小写字母
    isLetter(char ch)          判断字符是否是字母
    isDigit(char ch)           判断字符是否是数字

3、Date、Calendar、DateFormat等与时间相关的类

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Test {    
    public static void main(String[] args) {
            // 创建日期格式对象        
            SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");        
            try {            
                Date date = format.parse("2011年11月11日 11:11:11");            
                System.out.println(date.getTime()); 
            } catch (ParseException e) {
                  e.printStackTrace();        
              }       
             // 创建Calendar对象        
             Calendar calendar = Calendar.getInstance();        
             int year = calendar.get(Calendar.YEAR);        
             System.out.println("year = " + year);        
             int month = calendar.get(Calendar.MONTH);        
             System.out.println("month = " + (month + 1));       
             int day = calendar.get(Calendar.DAY_OF_MONTH);        
             System.out.println("day = " + day);    }   }

输出结果:
1320981071000 //从1970到该时间点的毫秒数
year = 2015 //打印今天的日期
month = 7
day = 25

时间: 2024-08-25 01:42:14

Java 学习笔记(2015.7.20~24)的相关文章

java学习笔记 (1) —— Strut2.3.24环境搭建

1.打开MyEclipse,添加WebProject,名称为testStruts2 2.配置Tomcat环境. 1) 在窗口——首选项——MyEclipse——Servers下找到Tomcat6.x 2) 选择Enable.浏览找到本机Tomcat6文件位置 3) 找到Tomcat——conf——server.xml文件.在</Host>结束标签前添加 <Context path="/testStruts2" docBase="E:\software\MyE

java学习笔记—JDBC5(20)

19 .连接池 创建Connection的过程是非常耗时的,为了保证Conection可以重用.应该将Connection进行池管理. 使用静态工厂方法管理一个唯一的连接: package cn.itcast.utils; import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManager; import java.util.Enumeration; /** * 用静态工厂方法管理一个唯一的可重用的连

Java 学习笔记(2015.7.13~17)

Java 学习笔记(2015.7.13~17) Java this关键字 表示本类中的属性,调用本类中的方法 class Person {        private String name;         private int age;         public Person(String name, int age) {         this.name = name;//调用本类中的属性         this.age = age;//同上} //get&set方法:    

Java学习笔记(2015.7.27~7.31)

Java学习笔记(2015.7.27~7.31) Java 课堂 Java学习笔记(2015.7.27~7.31) 小技巧 常用方法 1.List另一个子类--LinkedList 2.数组的常用方法 3.排序 1.二分法查找 2.数组转换为List 3.可变参数Type ... param (了解) 1.容器Collection 2.自动拆装箱(了解) 3.JDK增强for循环(了解) 4.泛型(掌握) 5.iterator与for在迭代中的区别 1.概念:保存多个对象的对象. 2.JDk为什

java学习笔记3——java关键字

java学习笔记3——java关键字 虽然老师说不用刻意的去记忆,但是我还是在网上找到了非常详细的注解,再次收藏 关键字的类型表: 各个关键字的详细注解和实例,按首字母排序: 1.abstract abstract 关键字可以修改类或方法. abstract 类可以扩展(增加子类),但不能直接实例化. abstract 方法不在声明它的类中实现,但必须在某个子类中重写. -示例- public abstract class MyClass{ } public abstract String my

【Java学习笔记之二十六】深入理解Java匿名内部类

在[Java学习笔记之二十五]初步认知Java内部类中对匿名内部类做了一个简单的介绍,但是内部类还存在很多其他细节问题,所以就衍生出这篇博客.在这篇博客中你可以了解到匿名内部类的使用.匿名内部类要注意的事项.如何初始化匿名内部类.匿名内部类使用的形参为何要为final. 一.使用匿名内部类内部类 匿名内部类由于没有名字,所以它的创建方式有点儿奇怪.创建格式如下: new 父类构造器(参数列表)|实现接口() { //匿名内部类的类体部分 } 在这里我们看到使用匿名内部类我们必须要继承一个父类或者

Java学习笔记之继承

一.继承的基础 在Java术语中,被继承的类叫超类(superclass),继承超类的类叫子类(subclass). 举例说明: 1 class Box 2 { 3 public double width; 4 public double height; 5 public double depth; 6 7 //重载构造方法 8 public Box(Box ob) 9 { 10 width = ob.width; 11 height = ob.height; 12 depth = ob.dep

Java学习笔记之接口

一.接口的概念与定义 首先考虑一个简单的接口的定义: public interface Output { int MAX_LINE = 40; void out(); void getData(String msg); } 定义接口使用关键字interface 修饰符interface前面的public可以省略,如果省略,则采用默认访问控制,即只有在相同包结构的代码才可以访问此接口 接口不可以有构造方法(区别于类中的构造方法) 接口里面的所有成员,包括常量.方法等都是public访问权限,所以在

java学习笔记 第二篇 核心技术(二)

第十四章 集合类 集合类用来存放对象的引用.继承关系如下图: 14.1 Collection 接口 是层次结构中的根接口,构成Collection的单位称为元素.Collection接口不能直接使用,但该接口提供了添加元素.删除元素.管理数据的方法. Collection接口常用方法: 14.2 List 集合 包括List接口以及List集合的所有实现类.List集合中的元素允许重复,各元素循序就是对象插入的顺序 1.List接口,两个重要方法: get(int index): 获取指定索引位