java学习补全 1
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的更多相关文章
- JAVA自动补全代码
打开eclipse(对myeclipse同样适用) 找到窗口(windows)菜单,打开最后一项首选项(Preferences)找到下属菜单java打开,打开里边的编辑器(Editor)菜单,点击内容 ...
- 转:eclipse 设置Java快捷键补全
1.打开Eclipse,点击" Window - Preferences"; 2. 在目录树上选择"Java——Editor——Content Assist", ...
- eclipse 设置Java快捷键补全
打开Eclipse,点击Window--Preferences--Java--Editor--ContentAssist Auto Activation 勾选Enable auto activatio ...
- Ubuntu vim java 自动补全javacomeplete2
一 安装vundle $ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim 默认安装在/.v ...
- java 自动补全
int youNumber = 1; // 0 代表前面补充0 // 4 代表长度为4 // d 代表参数为正数型 String str = String.format("%04d" ...
- eclipse代码自动提示设置、如何配置eclipse的代码自动提示功能(同时解决自动补全变量名的问题)?
对于编程人员来说,要记住大量的类名或类方法的名字,着实不是一件容易的事情.如果要IDE能够自动补全代码,那将为我们编程人员带来很大帮助. eclipse代码里面的代码提示功能默认是关闭的,只有输入“. ...
- Eclipse 修改自动补全触发器只能输入四个字符为多个字符
如果eclipse中的[auto activation triggers for java]自动补全触发器这个位置的文本框有时候只能输入4个字符, 可以通过修改配置文件的方法实现,具体操作步骤如下: ...
- eclipse变量名自动补全
对于编程人员来说,要记住大量的类名或类方法的名字,着实不是一件容易的事情.如果要IDE能够自动补全代码,那将为我们编程人员带来很大帮助. eclipse代码里面的代码提示功能默认是关闭的,只有输入“. ...
- eclispe中打点不会提示的解决方法,以及自动补全
Eclipse中打点无提示的解决办法 建了个JAVA工程,然后发现输入代码后,在输入.后面不会弹出来我所要的函数. alt+/ 提示No Default Proposals 自己找了半天, ...
随机推荐
- 高斯消元+期望dp——light1151
高斯消元弄了半天没弄对.. #include<bits/stdc++.h> using namespace std; #define maxn 205 #define eps 1e-8 d ...
- a common method to rotate the image
/* * clockwise rotate * first reverse up to down, then swap the symmetry * 1 2 3 7 8 9 7 4 1 * 4 5 6 ...
- JS中的Map和Set
使用iterable内置的forEach方法 var a = ['A', 'B', 'C']; a.forEach(function (element, index, array) { // elem ...
- 【breathandlife】气势磅礴、比较好听的旋律有哪些?
[breathandlife]气势磅礴.比较好听的旋律有哪些? 分享:yunbest作者:来源:2015-10-26 专题:breathandlife [breathandlife]气势磅礴.比较好听 ...
- 微信小程序chooseImage(从本地相册选择图片或使用相机拍照)
一.使用API wx.chooseImage(OBJECT) var util = require('../../utils/util.js') Page({ data:{ src:"../ ...
- codeforces 514E-Darth Vader and Tree
题意:有个无限大的有根树,每个节点都有N个孩子,每个孩子距离父亲节点的距离为di.求距离根节点距离<=x的节点个数. 思路:注意观察数据范围,每一个d[i]均小于等于100所以我们可以设dp[i ...
- 关于Server.MapPath和HostingEnvironment.MapPath
最近做的项目需要在Controller里重写一个static的方法,在方法内用常用的Server.MapPath会报一个错误:An object reference is required for t ...
- css3之字体@font-face
@font-face能够加载服务器端的字体文件,让浏览器端可以显示用户电脑里没有安装的字体. 浏览器支持 表格中的数字表示支持该属性的第一个浏览器版本号. Firefox, Chrome, Safar ...
- elasticsearch query 和 filter 的区别
Query查询器 与 Filter 过滤器 尽管我们之前已经涉及了查询DSL,然而实际上存在两种DSL:查询DSL(query DSL)和过滤DSL(filter DSL).过滤器(filter)通常 ...
- Leetcode145. Binary Tree Postorder Traversal二叉树的后序遍历
给定一个二叉树,返回它的 后序 遍历. 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 递归: class Solution { public: vector<int> res; ve ...