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. codevs1222 信与信封的问题

    二分图匹配. 先匹配一次,一定是完美匹配.然后枚举每条边,去掉它,若是不能完美匹配,这条边就必须. #include<cstdio> #include<cstring> #in ...

  2. PDO连续query()失败问题

    设置了非缓冲查询(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY)以后,连续query会导致下一次结果为false $conn = "mysql:host=127.0. ...

  3. 微信小程序之组件的集合(五)

    这个是学习复杂的组件的封装的,在课程中,主要实现的是书单上方的搜索功能组件的开发,这个应该是较之前的组件是有一定难度的,但是现在学到现在,感觉前端的内容和后端的内容比较起来,还是比较容易的,而且好多内 ...

  4. ROS 日志消息(C++)

    1.日志级别 日志消息分为五个不同的严重级别宏,与Android的Log定义的严重级别类似,如下基础宏: ROS_DEBUG_STREAM.ROS_INFO_STREAM.ROS_WARN_STREA ...

  5. sqlserver 下三种批量插入数据的方法

    本文将介绍三种批量插入数据的方法,需要的朋友可以参考下 本文将介绍三种批量插入数据的方法.第一种方法是使用循环语句逐个将数据项插入到数据库中:第二种方法使用的是SqlBulkCopy,使您可以用其他源 ...

  6. CentOS安装Eclipse luna

    1  解压 Eclipse luna到/opt tar -zxvf eclipse-java-luna-SR1-linux-gtk-x86_64.tar.gz -C /opt 2  创建软链接 ln ...

  7. 【JAVA】Class.getResource()与ClassLoader.getResource()的区别

    转载自:https://blog.csdn.net/qq_33591903/article/details/91444342 Class.getResource()与ClassLoader.getRe ...

  8. 创业型 APP 如何筛选合适的推送平台

    对于中小型 App 开发团队来说,采用何种方式实现适时而精准的消息推送是一件矛盾的事.将相同内容推送给所有终端用户,担心打扰用户.引起用户反感:而个性化的分群推送,又因为团队人少.运营精力不足无法实现 ...

  9. java基础之自定义单链表练习

    一.单链表 1.单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素.链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置), ...

  10. Python Flask高级编程之从0到1开发《鱼书》精品项目

    Python Flask高级编程之从0到1开发<鱼书>精品项目     整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感 ...