CLASSPATH

java执行命令时利用此路径加在需要的.class文件

字符串常量就是String 类的匿名对象

String类在直接复制的情况下只会保留一块堆内存

a="hhh"

b="hhh"

a==b true

String a="hee";

String b="hee";

String c="he";

c+='e';

System.out.println(a.hashCode()+" "+b.hashCode()+" "+c.hashCode());

在这种情况下 a,b同一 hashcode 相同

	String a=new String("hee");
String b="hee";
String c="he";
c+="e";
System.out.println(a==b);
System.out.println(b==c);
System.out.println(a.hashCode()+" "+b.hashCode()+" "+c.hashCode());

a,b,c均不同一

String 采用了 共享设计的设计模式

String a=new String("sssd")会导致内存浪费

使用new就不会入共享池

手工入共享池

String a=new String("hee").intern();

String b="hee";

a==b true;这下ab同一

字符串一旦定义就无法改变,对字符串的链接实际上是进行引用关系的改变

回避大量修改字符串的代码,会产生大量的垃圾内存区域

可以修改的字符串类型:

StringBuffer

StringBuilder类 作为代替

equals() equalsIgnoreCase() 是判断是否相等

repleaseAll() 方法可以代替字符串中的所有某一字符

this()在一个构造函数中调用其他的构造函数,这种情况只可以在构造函数的第一行调用this()(其他构造函数)

在java中函数传参是基础类型传值,对象类型传引用

但有一个特例。String 是对象类型,但是由于其不会改变值,所以行为看起来就像基本类型一样##

常用的内存区域

栈内存空间 : 对象的引用

堆内存空间 : 对方的属性内容

全局数据区 : static 属性

全局代码区: 方法的定义

static 方法不能调用 非 static方法

非static方法可以调用 static 方法

调用主方法时,如果参数本身就带有空格 那么用“”表示字符串就可以

代码块#

普通代码块,

静态代码块,

构造块,

同步代码块。

普通代码块:没什么鸟用,在里面是局部变量,外面是全局变量(范围更大一些)

构造块: 在类内部,且不论再哪里都会优先于构造方法执行(实例化的时候调用)

静态块:在类内部,且无论实例化多少次都只会有调用一次静态块,一般用于静态变量的初始化

在主程序的静态块先于主程序执行

内部类##

指定属性时候

outer.this.XXX

这样这顶属性

声明一个内部类

outer.inner a=new outer().new inner();

私有内部类只能在Outer类的内部使用

static 内部类:

将内部类变成了外部类

并且只能访问outer类中的静态成员或方法

outer.inner a=new outer.inner() 不在构造outer实例对象

在方法中定义的内部类课可以访问方法的参量护着变量(JDK 1.8后)

标准方法:在要是用的参量和变量之前加上final关键字

父类对象继承的话私有成员是不能访问的,但是私有成员是存在的,可以通过set get 方法间接的进行访问

super必须放在子类对象构造函数的首行

父类的private方法不能被覆写

String 也使用了final 定义 所以不能够被继承

instanceof判断类型

抽象类##

抽象类不能有子类

抽象类内部也可以有抽象类,可以再抽象类的子类中区继承。

外部抽象类不允许使用static,而内部的抽象类可以使用static,就像一个为外部类一样。

抽象类中可以有static方法,这样就可以直接使用

隐藏抽象类的子类的方法:使用内部抽象私有子类,抽象类的内部,一个继承了本类的私有的类

使用static getinstance方法获得一个唯一的子类实例

抽象类的普通方法可以调用抽象方法,只是此时抽象方法必须由子类来提供

Servlet继承自httpServlet 就是一种抽象继承关系(java web开发)

接口定义##

接口中只能有全局常亮和抽象方法

加不加 public static final (全局常量)

public abstract (抽象方法)

效果一样

接口中只能使用一种访问权限public

一个接口可以使用extends 关键字继承多个父接口

在接口A中定义一个抽象内部类X

那么A的子类内部就可以有继承X的内部类实现

设计模式:工厂设计模式##

Factory.getinstance(classname)

设计模式:代理设计模式##

real 功能较少, Proxy提供了许多功能

net= new Proxy(new Real());

如果自己写接口,请使用工厂类获得相应的子类

Object类#

理论上应该覆写三个方法

toString

equals

hashCode

equals 默认是比较地址(即同一)

包裹类##

对象型包装类: Charater Boolean

数值型包装类(number 的直接子类):Byte Short Intergeter Long Float Double

包装类型默认为null 这和基础类型不同

String类的转化

方法一: 直接加,不推荐,会产生垃圾空间

方法二:public static String valueOf(数据类型变量) 可以将任意类型的类转化为String类

java学习补全 1的更多相关文章

  1. JAVA自动补全代码

    打开eclipse(对myeclipse同样适用) 找到窗口(windows)菜单,打开最后一项首选项(Preferences)找到下属菜单java打开,打开里边的编辑器(Editor)菜单,点击内容 ...

  2. 转:eclipse 设置Java快捷键补全

    1.打开Eclipse,点击" Window - Preferences"; 2. 在目录树上选择"Java——Editor——Content Assist", ...

  3. eclipse 设置Java快捷键补全

    打开Eclipse,点击Window--Preferences--Java--Editor--ContentAssist Auto Activation 勾选Enable auto activatio ...

  4. Ubuntu vim java 自动补全javacomeplete2

    一 安装vundle $ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim 默认安装在/.v ...

  5. java 自动补全

    int youNumber = 1; // 0 代表前面补充0 // 4 代表长度为4 // d 代表参数为正数型 String str = String.format("%04d" ...

  6. eclipse代码自动提示设置、如何配置eclipse的代码自动提示功能(同时解决自动补全变量名的问题)?

    对于编程人员来说,要记住大量的类名或类方法的名字,着实不是一件容易的事情.如果要IDE能够自动补全代码,那将为我们编程人员带来很大帮助. eclipse代码里面的代码提示功能默认是关闭的,只有输入“. ...

  7. Eclipse 修改自动补全触发器只能输入四个字符为多个字符

    如果eclipse中的[auto activation triggers for java]自动补全触发器这个位置的文本框有时候只能输入4个字符, 可以通过修改配置文件的方法实现,具体操作步骤如下: ...

  8. eclipse变量名自动补全

    对于编程人员来说,要记住大量的类名或类方法的名字,着实不是一件容易的事情.如果要IDE能够自动补全代码,那将为我们编程人员带来很大帮助. eclipse代码里面的代码提示功能默认是关闭的,只有输入“. ...

  9. eclispe中打点不会提示的解决方法,以及自动补全

    Eclipse中打点无提示的解决办法 建了个JAVA工程,然后发现输入代码后,在输入.后面不会弹出来我所要的函数.  alt+/      提示No Default Proposals 自己找了半天, ...

随机推荐

  1. Bash Specially-crafted Environment Variables Code Injection Vulnerability Analysis

    http://www.cnblogs.com/LittleHann/p/3992778.html

  2. PAT甲级——A1093 Count PAT's【25】

    The string APPAPT contains two PAT's as substrings. The first one is formed by the 2nd, the 4th, and ...

  3. spring retry 重试机制完整例子

    public static Boolean vpmsRetryCoupon(final String userId) { // 构建重试模板实例 RetryTemplate retryTemplate ...

  4. Python学习day14-函数进阶(2)

    figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...

  5. Errors were encountered while processing: mysql-server-5.5

    ubuntu 中运行完sudo apt-get install curl之后,最后出现: ldconfig deferred processing now taking place Errors we ...

  6. Css if hack条件语法

    Css if hack条件语法  <!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]--><!--[if IE]> ...

  7. Elasticsearch系列(二)--query、filter、aggregations

    本文基于ES6.4版本,我也是出于学习阶段,对学习内容做个记录,如果文中有错误,请指出. 实验数据: index:book type:novel mappings: { "mappings& ...

  8. 2、node服务器

    一.简单的node服务器搭建 1.首先新建一个名为server.js的文件(文件名随意,后缀名必须是.js) 2.粘贴进文件以下内容 //引入http模块 const http = require(& ...

  9. html常用标签6-表单标签

    1.表单的初始化标签 <form action="#" method="get"><!--表单的开始--> </form> ...

  10. centos yum 坏掉 db 损坏

    #首先清除掉缓存,之后再重建就可以了 rm -f /var/lib/rpm/__db* rpm --rebuilddb 提示的错误应该是: error: rpmdb: BDB0113 Thread/p ...