javaweb-软件基础篇-002

大学学习了很多语言,比如c,c#,java,python,android,等到本科要毕业了,选个方向做下去,觉得还是java比较现实一点,未来再考虑其他方向的问题。我决定要定期更新java有关的知识,做成一个系列。

1.软件:ideaIU-2017.3.4

2.小常识:

目录

如何更改软件内的字体

2,如何创建快捷键

常用的一些快捷键

导入一个moudle

java方法的概念

方法重载

数组

数组地址

java内存管理

数组赋值

数组异常

 面向对象

对象

类的创建与使用

 ​

对象作为方法参数

局部变量与成员变量

在类中的位置不同 重点

作用范围不一样 重点

初始化值的不同 重点

在内存中的位置不同 了解

生命周期不同 了解

封装继承多态

构造方法

自动生成getter,setter代码,以及构造方法,constructor,

  标准代码——JavaBean

 JavaAPI,预先写好的类

Scanner类、Random类、ArrayList类

使用API

匿名对象

匿名对象作为方法的参数

random

对象数组

String类、static、Arrays类、Math类

字符串

字符串比较原理与引用类型

常用方法

字符串常用方法

截取字符串

字符串的分隔

static

static在内存中的占用空间与位置

 静态代码块执行一次

arrays

math方法 



  1. 如何更改软件内的字体

有时候容易把窗口的各个界面搞混,弄乱,可以恢复默认窗口布局

右下角有窗口开关按钮 

如果窗口是悬浮的,在window里active那里关闭窗口悬浮模式,同时提示各个窗口的名字

2,如何创建快捷键

常用的一些快捷键

alter+i (insert)快速生成构造体,可以有参,也可以无参

ctrl alt v,这个快捷键最好,当你new a()对象时,会自动补充前面的对象名,并自动起名字,可以自定以快捷键

如何快速展开项目中的所有文件?

选中项目,按着向右箭头,按一次展开一层,一直按着,一直展开,同理向左按住,收回展开

ctl shift enter自动在行末加分号

shift+f6选定某个名称,可以重新为其命名

ctrl c v可以直接复制一个类进行重命名

导入一个moudle

java方法的概念

方法就是若干功能集合,最终为实现某个功能而存在

修饰符 返回值类型 方法名(参数列表){
//代码省略...
return 结果;
}

方法重载

方法重载:指在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同即可,与修饰符和返回值类型无关。
参数列表:个数不同,数据类型不同,顺序不同。
重载方法调用:JVM通过方法的参数列表,调用不同的方法。

数组

数组初始化

第一种方式:

数组存储的数据类型[] 数组名字 = new 数组存储的数据类型[长度];

注意:数组有定长特性,长度一旦指定,不可更改。

第二种方式:

数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3...};

第三种方式:

数据类型[] 数组名 = {元素1,元素2,元素3...};

 数组有属性.length得到数组长度,最大索引为.length-1

数组地址

【数字类型 I  int@16进制

初始化默认值

java内存管理

程序需要在内存中运行,因此就需要进行管理这种资源

数组赋值

java文件被编译成字节码文件class,class进入方法区,内存中开辟方法区空间

方法区找到main方法压栈,

开始创建数组,堆中开辟空间存储对象,返回数组首地址

索引数组数据时根据数组名代表的首地址进行偏移操作

数组异常

索引越界异常,空指针异常

 面向对象

类:是一组相关属性和行为的集合。可以看成是一类事物的模板

属性:就是该事物的状态信息。
行为:就是该事物能够做什么

public class ClassName {
//成员变量
//成员方法
}

对象

对象:是一类事物的具体体现

面向对象思想,思想若通,语言即通

类名 对象名 = new 类名();

类的创建与使用

java文件编译成class文件,class文件进入方法区,内存中为方法区开辟空间

main方法压栈

实例化对象A,对象进入堆空间中创建,对象的成员属性在堆中,对象的方法依旧在方法区中,方法区返回对象方法的地址存储在堆中

A调用成员方法,先进入堆中找到对象地址,然后再从堆中对象所存储的区域找到需要调用的成员方法地址,根据方法地址再去方法区中找到具体的方法执行

方法依次执行进行压栈操作,执行完后弹出方法栈,当main弹出时程序运行结束

 

压栈,出栈,方法去,堆,栈

两个对象.调用同一个方法,在堆中开辟两个对象空间,但是成员方法引用一个方法区

若对象相同,.堆中只开辟一个对象空间,两个对象操作的堆中的对象相同.

对象作为方法参数

将一个类实例化,作为方法的参数

.事实上对象名其实代表了地址值,传进去的对象参数也是地址值.

.数组也是如此

class文件进入方法区,main进入方法栈,new出的对象进入堆空间

成员方法本体在方法区,返回地址给对空间中的对象方法,.

 对象作为返回值

.返回的实际是对象的地址值,根据地址当然可以找到对象的相关数据

局部变量与成员变量

在类中的位置不同 重点


成员变量:类中,方法外
局部变量:方法中或者方法声明上(形式参数)


作用范围不一样 重点


成员变量:类中
局部变量:方法中


初始化值的不同 重点


成员变量:有默认值,如int没有赋值默认为0
局部变量:没有默认值。必须先定义,赋值,最后使用


在内存中的位置不同 了解


成员变量:堆内存,对象所在位置,
局部变量:栈内存,方法所在位置


生命周期不同 了解


成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失 

new对象时成员变量一同创建,在堆中

而局部变量,对着方法调用而在栈中创建 

封装继承多态

private

赋值方法也会改变

因此具有了数据规范的能力

this的使用

表示本对象

构造方法

 

注意事项
1. 如果你不提供构造方法,系统会给出无参数构造方法。
2. 如果你提供了构造方法,系统将不再提供无参数构造方法。
3. 构造方法是可以重载的,既可以定义参数,也可以不定义参数。 

自动生成getter,setter代码,以及构造方法,constructor,

  标准代码——JavaBean


JavaBean 是 Java语言编写类的一种标准规范。符合 JavaBean 的类,要求类必须是具体的和公共的,并且具有无参数的构造方法,提供用来操作成员变量的 set 和 get 方法。

此要求编写符合javabean规范的类

public class ClassName{
//成员变量
//构造方法
//无参构造方法【必须】
//有参构造方法【建议】
//成员方法
//getXxx()
//setXxx()
}

 JavaAPI,预先写好的类

Scanner类、Random类、ArrayList类

scanner键盘输入

arraylist类似数组,但是实现了自扩容

使用API

 查看类
java.util.Scanner :该类需要import导入后使用。
查看构造方法
public Scanner(InputStream source) : 构造一个新的 Scanner ,它生成的值是从指定的输入流扫描的。
查看成员方法
public int nextInt() :将输入信息的下一个标记扫描为一个 int 值。

使用scanner方法,查询api

匿名对象

概念
创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量。而是直接使用了此对象
匿名对象 :没有变量名的对象。

没有把地址给出来

new 类名(参数列表);

例子 new Scanner(System.in);

 一旦调用两次方法,就是创建了两个对象

匿名对象可以作为方法的参数和返回值

匿名对象作为方法的参数

匿名对象作为返回值

random

用于生成伪随机数。

查看类
java.util.Random :该类需要 import导入使后使用。
查看构造方法
public Random() :创建一个新的随机数生成器。
查看成员方法
public int nextInt(int n) :返回一个伪随机数,范围在 0 (包括)和 指定值 n (不包括)之间的
int 值。

指定范围生成

 随机在0-2中生成一个数字

对象数组

对象数组

大小可变的数组的实现,大小也自动增长。

查看类
java.util.ArrayList <E> :该类需要 import导入使后使用。<E> ,表示一种指定的数据类型,叫做泛型。 E ,取自Element(元素)的首字母。在出现 E 的地方,我们使用一种引用数据类型将其替换即可,表示我们将存储哪种引用类型的元素。代码如下:

ArrayList<String>,ArrayList<Student>

查看构造方法
public ArrayList() :构造一个内容为空的集合

基本格式:

ArrayList<String> list = new ArrayList<String>();

在JDK 7后,右侧泛型的尖括号之内可以留空,但是<>仍然要写。简化格式:

ArrayList<String> list = new ArrayList<>();     

对于元素的操作,基本体现在——增、删、查。常用的方法有:
public boolean add(E e) :将指定的元素添加到此集合的尾部。
public E remove(int index) :移除此集合中指定位置上的元素。返回被删除的元素。
public E get(int index) :返回此集合中指定位置上的元素。返回获取的元素。
public int size() :返回此集合中的元素数。遍历集合时,可以控制索引范围,防止越界。

装载基本类型

装载对象

String类、static、Arrays类、Math类

字符串

1. 字符串不变:字符串的值在创建后不能被更改。 

string是一个对象,内部写有操作字符串的方法,比如比较,搜索,切割,大小写转换等等

String s1 = "abc";
String s2 = "abc";
// 内存中只有一个"abc"对象被创建,同时被s1和s2共享。

创建字符串的几种方法

空字符串,从字符数组创建,从字节数组创建

字符串比较原理与引用类型

如下比较的其实是引用类型的地址

常用方法

equals比较

因为变量可能会引发空异常,即变量可能不存在值

字符串常用方法

截取字符串

字符串的内容替换

字符串内容转化

 CharSequenc 是一 个接口,也是一种引用类型。作为参数类型,可以把String对象传递到方法中。

字符串的分隔

static

关于 static 关键字的使用,它可以用来修饰的成员变量和成员方法,被修饰的成员是属于类的,而不是单单是属于某个对象的。也就是说,既然属于类,就可以不靠创建对象来调用了。即可以直接调用

静态关键字,可以节省内存,共同属性,方便修改

版本号自动记录,或者创建的多少个对象自动记录

修饰成员变量用于共享内存,优化

static修饰成员方法

注意

 静态方法只能访问静态成员,对于this和对象相关,而静态只与类相关

static在内存中的占用空间与位置

方法区里有一个特殊区域,相当于开小灶,静态区,.静态成员被放到了这里.

new出来的对象在堆当中.

当调用静态成员的时候直接去方法区中找参数名,找到后再去找静态区中看其存储的数据

即是使用对象调用,最后还是会被翻译成类调用

 静态代码块执行一次

静态代码块:定义在成员位置,使用static修饰的代码块{ }。
位置:类中方法外。
执行:随着类的加载而执行且执行一次,优先于main方法和构造方法的执行。

常被用来初始化

static 关键字,可以修饰变量、方法和代码块。在使用的过程中,其主要目的还是想在不创建对象的情况下,去调用方法。 

以下两个类是方法用静态方法写的,作为工具类被使用

arrays

字符串到字节一节排序案例

math方法 

不必再手动声明了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值