java nep_java知识点

Java开发环境搭建

JDK(无脑)

配置环境变量

JAVA_HOME(新建)

C:\Program Files\Java\jdk1.7.0_67

Path(追加)

%JAVA_HOME%/bin;…

CLASSPATH

.;./bin

本地类加载–>系统类加载—–>扩展类加载

HelloWorld编写运行

顶级三要素

package

import

不需要导包情况

1)需要的类和当前类在同一个包下

2)需要的类位于java.lang下

class

编译

I:\ssh\day01

javac -d ./bin src/HelloWorld.java

-d 目录 将编译好的字节码文件放到指定目录

运行

I:\ssh\day01

java [参数] 完整类名(包名+类名)

-classpath 路径

-cp 路径

指定类加载路径(CLASSPATH)

java -cp ./bin com.briup.day01.HelloWorld

打包

I:\ssh\day01\bin

jar

部署运行

hello.jar

java -cp hello.jar com.briup.day01.HelloWorld

扩展类加载库

C:\Program Files\Java\jdk1.7.0_67\jre\lib\ext

java com.briup.day01.HelloWorld

Java中重要的包

java.lang

String

Math

包装器数据类型

异常

java.util

集合

Date

java.io

字节流

字符流

java.net

基本数据类型

无符号整数

char 2字节 16位

0~2^15-1

有符号整数

byte 1字节 8位

-2^7~2^7-1

short 2字节 16位

-2^15~2^15-1

int 4字节 32位

-2^31~2^31-1

long 8字节 64位

-2^63~2^63-1

有符号小数

float 4字节

8位有效整数

double 8字节

15位有效整数

布尔类型

boolean 一个字节或四个字节(常见是一个字节)

true/false

引用数据类型

类类型

包装器数据类型

扩展基本数据类型的功能

int a = 3;

Integer b = new Integer(3);

Integer c = 3;

用于将字符串转换为基本数据类型

String str = “123”;

int a = Integer.parseInt(str);

long b = Long.parseLong(str);

Double d = Double.parseDouble(str);

可以赋空值

int age = null;

char Character

byte Byte

short Short

int Integer

long Long

float Float

double Double

boolean Boolean

操作符

算数操作

/ %

+= -= *= /= %=

逻辑运算符(短路运算符)

exp1 || exp2

|| 当第一个表达式为真,整个表达式即为真

&& 当第一个表达式为假,整个表达式即为假

位运算符(后期)

原码 反码 补码

^ | &

三目运算符

exp1? exp2:exp3

当exp1为真执行exp2,否则执行exp3

if(exp1){

exp2

}else{

exp3

}

int age = 14;

String flag = age>18?”成年人”:”未成年人”;

语句

分支语句

switch(变量){

case 常量1: {

//

break;

}

case 常量2:

//

break;

}

变量

1.6以及以下 :byte short char int

1.7以及以上 :String enum(枚举)

循环语句

三要素

初始化条件

结束条件

迭代条件

for(初始化;结束条件;迭代条件){

//循环体

}

初始化

while(结束条件){

//循环体

迭代条件

}

初始化

do{

//循环体

迭代条件

}while(结束条件)

面向对象

三大基本特性

封装

属性的隐藏

实现细节的隐藏

原则:当相同功能的代码出现两次以及以上,就要提取封装

public class Student{

private Long id;

private String name;

private Integer age;

public void setId(Long id){

this.id = id;

}

public Long getId(){

return this.id;

}

}

public class Paixu{

public void maopao(){

}

public void charu(){

}

}

继承

子类继承父类

public class Parent{

private Long id;

public Parent(long id){

this.id = id;

}

}

Parent p = new Parent();

Public class Son extends Parent{

}

Son son = new Son();(试回答该语句执行了几个构造方法)

当创建子类对象的时候要调用子类构造函数,在子类构造函数的第一行中会默认调用父类的无参构造函数,当父类中没有无参构造函数,子类必须显示调用父类的有参构造函数。

this

指向当前对象 this.id = id;

调用当前类中其他构造函数 this()

super

指向当前对象的父对象

调用当前类的父类的构造函数

多态

父类类型的引用指向子类对象,通过该引用只能调用父类中有的方法,而不能调用子类中特有的方法;如果子类重写了父类的方法,通过该引用调用父子类的共有的方法时体现子类的特点

重写:发生在父子类中,子类中的方法与父类中的方法方法名相同,参数相同,返回值也相同。方法修饰符不能被缩小,异常不能被放大。

重载:发生在同一个类中,两个方法名相同,参数不同(参数,个数,顺序),返回值类型可以相同也可以不同。方法修饰符不能被缩小,异常不能被放大。

高级部分

访问修饰符

本类 同包 父子类 其他

public ok ok ok ok

protected ok ok ok

默认 ok ok

private ok

特殊修饰符

static 静态:

方法:

可以直接通过类名调用,静态方法中不能调用非静态方法,静态方法在类加载时初始化

属性:

可以直接通过类名调用,静态属性在类加载时初始化

byte 0

char '\u0000'

short 0

int 0

long 0L

float 0.0F

double 0.0D

boolean false

引用 null

代码块:

static{

}

类加载执行

内部类:(后期)

public class Outer{

public static class Inner{

}

}

final

final类 不能继承

final属性

只能初始化一次

在使用这个final属性之前要先自定义初始化

非静态属性

public final int age;

1)直接赋值

2)构造函数中初始化

静态属性

public static final int age;

1)直接赋值

2)静态代码块中初始化

final方法

不能被重写

final变量

只能赋值一次

全局变量 -- 属性

局部变量

final int a;

a = 3;

a = 5;

syso(a);

abstract

抽象类

不能实例化

当一个类中有抽象方法,这个类一定为抽象类,抽象类中不一定有抽象方法

存在的意义是为子类提供标准和服务

子类继承抽象父类,如果父类中有未实现的方法子类要么实现,要么自身也为抽象类。

抽象方法

没有方法体

Interface 接口

只允许存在

公共的抽象方法

public abstract

公共的静态常量

public static final

add();

抽象到极致的抽象类

数组

存放相同数据类型的集合,可以存放基本数据类型也可以存放引用数据类型

数组长度一旦指定不能修改

数组元素通过下标来访问,下标范围0~length-1,如果超过范围会报错 ArrayIndexOutOfBounds

数据类型[] 变量名 ;

变量名 = 初始化;

初始化

1)系统初始化

int[] arr = new int[4];

2) 自定义初始化

float[] arr = new float[]{1,2,3.0};

String arr = {“”,”“,”“};

集合

可以存放任意引用数据类型的集合

集合的长度可以自动扩展

Collection

(add remove clear isEmpty 【iterator】)

List

有序可以重复

ArrayList 轻量级,线程不安全

Vector 重量级,线程安全的

LinkedList 双向链表

Set

无序不可以重复

HashSet

无序,哈希算法

TreeSet

可以排序,红黑树算法

Map

(keySet(),values(),entrySet())

键值对

HashMap(线程不安全)

TreeMap

HashTable(线程安全,重量轻)

文/清枫_小天(简书作者)

原文链接:http://www.jianshu.com/p/9caf1c755889

著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
精简jre步骤 1. 拷贝一个完整版的jre文件夹到D盘 2. 删除jre目录下所有出bin和lib目录的所有文件或目录 3. 打开cmd窗口,设置path路径为空,转到D:\jre\bin目录,运行java –version。正常显示当前Java的版本。 4. 在bin目录中新建一个temp目录,将除java.exe和java.dll外的移到temp目录中 5. 再次运行java –version命令,提示没找到verify.dll。将temp目录中的verify.dll移到bin目录中 6. 再次运行 java –version命令,提示:Could not create the Java virtual machine.错误 7. 根据测试:还要将hpi.dll和zip.dll放到bin目录中 8. 再次运行java –version命令,OK,又出现了版本信息。此时,可以将temp目录移出bin目录中。(放到桌面先) 9. 删除client目录中的除jvm.dll外的文件。转到jre目录,查看bin目录的大小,为2.89MB。但此时lib目录仍有60M有余 10. 转到lib目录,新建一个temp目录,将i386除外的目录都移动到temp目录中,再次运行java –version命令,OK 11. 再新建一个temp2目录,将charsets.jar和rt.jar外的所有文件移动到temp2目录中,再次运行 Java –version命令,OK 12. 将temp2和temp目录移到桌面。此时lib仍有48.7M接近50M。(还得努力) 13. 缩减charsets.jar和rt.jar(使用7z工具可以查看和修改jar文件的内容『直接添加和删除』)。准备做个软件来实现。 14. 缩减原则。运行java -verbose:class -version > temp.java 命令,此时在bin目录下生成了一个temp.java文件,用EditPlus打开,看到没有,要加载的就是那些类了,把不需要的全部删除就是了。 15. 原来charsets.jar没有加载呀。直接删除,再次运行java –version命令,OK 16. 接下来的工作就是裁剪rt.jar了。慢慢来。也可以做个软件来完成。可以下载一个GreenJVMMake.jar来完成。不过有时候好像有些类没加载到。要考虑更新了。 17. 裁剪玩rt.jar后,再次运行java –version ,出现了版本信息。OK 18. 转到D盘查看一下精简的jre才4.47MB。不到5M。OK 19. 最小的jre制作完毕。 附带制作过程图片,可用Picasa来查看,播放模式效果更佳。 Thoams 2010-6-25 15:53

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值