Java类额应用
基本数据类型包装类
Integer Character
其他的都是将首字母大写;
包装类和基本类型之间的转换:
Integer int
Integer i = new Integer(int value);
int i2 = i.intValue();
基本数据类型和String转换
String -->int
static int parseInt(String s)
int i = Integer.parseInt("123");
int ->String
String 类valueOf(int val);
String str = String.valueOf(123);
装箱和拆箱:
java5开始出现自动装箱和拆箱;
自动装箱:
可以直接把一个基本数据类型的值直接赋给它所对应的包装类对象;
Integer i = 17;
自动拆箱:把包装类对象直接赋给它所对应的基本类型的一个变量
int i2 = new Integer(2);
Object是所有类的超级父类,
Object的对象可以接受一切数据;
享元模式:
Byte,Short,Integer,Long缓存了一个区间的数据;[-128,127]看源代码
Integer i1 = 123;
Integer i2 = 123;
i1 == i2;//true
new Integer(123) == new Integer(123);//false
Object类:就是描述对象的一个类
是超级父类;
可以接受一切数据,包括数组;
Object o = {1,2,3};
Object o = new int[]{1,2,3};
boolean equals(Object otherObj);
就是那当前对象和otherObj相比较;
默认情况下,比较的是 内存里的地址,此时和 == 一样;
一般要求子类根据自身情况覆写该方法,
String 类覆写 equals方法
Integer 类也覆写了 equals方法
int hashCode();//返回对象的一个十进制的hash值,每个对象的hashCode都不一样
String toString();//把对象转成String类型, 描述对象信息
默认情况下, 类的全限定名 + @ + Integer.toHexString(this.hashCode());
一般要求子类覆写该方法
平时我们打印对象,其实打印的是对象的toString方法,也就说在底层该对象会去调用toString方法
class Person{
String name;
int age;
public Person(String name,int age)
{
this.name = name;
this.age = age;
}
public String toString()
{
return this.name +", " + this.age;
}
}
public static void mian (String []args)
{
System.out.println(new Person("Will",17));
System.out.println(new Person("Lucy",16));
}
代码块:
1.普通(局部)代码块,写在方法;
2.构造代码: 类里面,方法外面, 特点: 先于构造方法的执行,每次创建对象,都会执行
3.静态代码块: static 修饰的构造代码块, 特点: 优先于主方法的执行,只执行一次, 可以用来给静态变量赋值;
4.同步代码块
单例模式:
保证项目中的一个类在运行期间有且只有一个实例对象;
//1. 把构造方法给私有化,保证外界不能创建对象
//2. 自身在内部先创建一个对象,再使用private修饰起来,
//3. 向外暴露一个全局的静态的方法用于返回内部创建的对象;
因为静态成员只能访问静态成员,那么此时必须把对象使用static修饰,
饿汉式:
class Singleton
{
private Singleton(){}
private static final Singleton instance = new Singleton();
//线程安全
public static Singleton getInstance()
{
return instance;
}
}
懒汉式:
class Singleton
{
private Singleton(){}
private static final Singleton instance = null;
//线程不安全的
public static Singleton getInstance()
{
if(instance == null)
{
instance = new Singleton()
}
return instance;
}
}
final:
表示最终的;
可以修饰 类,方法,变量;
final 修饰的类 表示太监类,不能被继承;基本数据类型包装类全是
final 修饰的方法 表示 不能被子类覆写 ;
final 修饰的变量:
常量: 常量名大写,若是多个单词组成,单词之间使用下划线隔开;
全局常量: public static final 修饰的变量
常量只能赋值一次
若是引用类型的常量,表示 引用对象的地址不能变,但是对象的内容是可以改变的;
方法里的内部类,只能访问方法里使用 final 修饰的变量;
抽象类:
使用 abstract 修饰的类, 一般抽象类都应该包含抽象方法,但不是必须的;
若一个类有抽象方法,那么该类必须是抽象类;
不能创建对象(不能 new),其他的换个普通类一样
可以包含普通方法;
什么时候使用抽象方法:
父类定了子类应该具备的行为,但是 具体行为的实现必须得有子类来完成;
抽象方法:
使用 abstract 修饰的方法,
只有方法的申明,没有方法的具体实现;(交给子类去实现)
一般建议把 abstract 放在修饰符前面;
抽象类必须有子类,
而且子类必须全部覆写抽象类中的抽象方法,二者,子类也作为抽象类;
青年(Person)都有吃饭(eat)和坐(set)的行为;
但是文艺青年(ArtMan)和普通青年(NormalMan)各自的的吃饭和坐的行为的具体表现都不一样;
abstract class Person
{
abstract void eat();
abstract void set();
}
class ArtMan extends Person
{
void eat()
{
System.out.println("一根一根的吃");
}
}
class NormalMan extends Person
{
void eat()
{
System.out.println("一口一口的吃");
}
}
class B2 extends Person
{
void eat()
{
System.out.println("一坨一坨的吃");
}
void set()
{
System.out.println("腿搅成麻花儿");
}
void show()
{
System.out.println("腿搅成麻花儿");
}
}
...mian..//主函数
{
Person p = new B2();
p.eat();//实际调用的是B2里的方法
p.set();
//p.show();//编译通不过,在Person里找不到
}
Java类额应用的更多相关文章
- Java类文件最大限制
今天在往一个jsp文件里添加代码时,项目跑起来访问这个jsp时报错.. The code of method _jspService(HttpServletRequest, HttpServletRe ...
- 别翻了,这篇文章绝对让你深刻理解java类的加载以及ClassLoader源码分析【JVM篇二】
目录 1.什么是类的加载(类初始化) 2.类的生命周期 3.接口的加载过程 4.解开开篇的面试题 5.理解首次主动使用 6.类加载器 7.关于命名空间 8.JVM类加载机制 9.双亲委派模型 10.C ...
- 如何用Java类配置Spring MVC(不通过web.xml和XML方式)
DispatcherServlet是Spring MVC的核心,按照传统方式, 需要把它配置到web.xml中. 我个人比较不喜欢XML配置方式, XML看起来太累, 冗长繁琐. 还好借助于Servl ...
- jvm系列(一):java类的加载机制
java类的加载机制 1.什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装 ...
- java类与实例
最近在看设计模式,感觉自己对java的三大特性的理解不够清晰,搞不清楚抽象类.接口.泛型的用处和优缺点.设计模式学了一半,想着还是停下来脑补一下java的基础,就从java对象开始吧. 一.java对 ...
- oracle调用JAVA类的方法
导入jar包 在oracle中导入需要的jar包,我们把编辑好的java类打成jar包,直接在oarcle里面写简单的调用就可以了, 1.操作系统需要拥有支持loadjava命令的jdk. 2.加 ...
- Java 类的实例变量初始化的过程 静态块、非静态块、构造函数的加载顺序
先看一道Java面试题: public class Baset { private String baseName = "base"; // 构造方法 public Baset() ...
- hibernate中java类的成员变量类型如何映射到SQL中的数据类型变化
hibernate映射文件??.hbm.xml配置映射元素详解--Hibernate映射类型 在从Hibernate的java的成员类型映射到SQL中的数据类型,其内映射方式它满足,SQL可以自己调制 ...
- kettle系列-[KettleUtil]kettle插件,类似kettle的自定义java类控件
该kettle插件功能类似kettle现有的定义java类插件,自定java类插件主要是支持在kettle中直接编写java代码实现自定特殊功能,而本控件主要是将自定义代码转移到jar包,就是说自定义 ...
随机推荐
- 关于 iOS 10 中 ATS 的问题
本文于 2016 年 11 月 28 日按照 Apple 最新的文档和 Xcode 8 中的表现进行了部分更新. WWDC 15 提出的 ATS (App Transport Security) 是 ...
- WindowsForm的ComboBox初始化绑定并选中默认值
1.通过查询将默认值放到第一个,然后进行绑定 //绑定线别 private void LineBind() { SqlConnection myConnection = new SqlConnecti ...
- EJB初识(通熟易懂)
转载自http://blog.csdn.net/jojo52013145/article/details/5783677,讲的很透彻,佩服,膜拜学习 1. 我们不禁要问,什么是"服务集群&q ...
- unity中的WWW通讯问题
网上很多写到WWW的问题. 一.局限性比较大,使用不方便二.WWW类的使用不符合微软的命名规范三.在大量并发使用WWW类会发生"Too Many Threads"的异常 确实有些, ...
- FreeRadius服务器安装以及error while loading shared libraries问题
服务器安装过程: 1. Down from www.freeradius.org 我下载的版本是freeradius-server-2.1.8.tar.gz 2. tar zx ...
- NET映射导致的应用无法访问
应用环境 IIS 数据库 oracle11G 服务器 windwos2003 企业版 周一早上刚到,听到业务部门的人反应,集团的扫码抢系统登陆不上了,没办法进行出入库操作,大批货物在仓库堆积,承运车 ...
- 通过js获取cookie的实例及简单分析
今天碰到一个在firefox下swfupload 上传时session不一致问题 在一个项目遇到多文件上传时,firefox下,服务器端的session获取不一致问题. 解决办法: 解决办法:将ses ...
- XML文档
XML(Extensible Markuo Language)可标记扩展语言.它是一种以简单文本格式存储数据的方式,可以被任何计算机读取. XML文档里包含的元素都是可以自定义的. 1.XML文档声明 ...
- review again and again
盲评结果出来了.然而对于我并没有太大的影响.从头到尾我没有紧张过,自然也不会有如释重负的感觉. 昨天说了事情要提前做准备.早上,到教研室挺早,review的时候,发现论文中一个关于目录的小问题,解决掉 ...
- idea添加内存
在idea安装目录下的以下两个文件: 添加内存: