从0开始学习Java编程系列day1-day7

作为非科班的学生,每天日常学习和事务也比较繁忙,而学习Java是课余的主要任务,遂开始写这么一个持续更新的系列。

目的有三:一是记录我在Java上每日学习到的部分知识做一个简单的输出,二是作为推动我持续学习的一个动力,目标三比较宏大,是希望能够写成帮助到没接触过Java的同学从零开始学习和作为已经学习过Java的同学的一个复习的知识库。

Day1:

  1. Java发展史

Java的创始人 詹姆斯.高斯林

Born in 1995年

  1. java的体系
    1. JavaEE:企业版
    2. JavaSE:基础版标准版
    3. JavaME:微型版
  2. dos命令

md:创建目录

rd删除目录

cd进入目录

cd..返回上一目录

exit退出dos窗口

cls 清屏

4.第一个程序:

  1. 严格区分大小写String System
  2. 每一行语句的结束;
  3. 写代码注意缩进
  4. 注意单词的拼写
  5. Public修饰的类名必须与源文件保持一致
  6. 一个Java文件可以存在n个类,只能有一个类被public修饰

5.标识符

标识符:Java中凡是自己定义名字的地方都是标识符。

规则:

  1. 字母 数字 下划线 美元符组成、
  2. 数字不能开头
  3. 严格区分大小写
  4. 不能是Java中的关键字和保留字
  5. 长度无限制

规范:

  1. 见名知意
  2. 驼峰命名

如userName

  1. 对类名进行命名时

每一个单词首字母都要大写

Java的数据类型

基本数据类型:

四类八种:

整型:byte 杯子

 Short 水壶

 Int 锅

 long 缸

1.Long数值的末尾+l/L

2.整型默认数据类型是int

3.赋值大于byte或者short的范围则会将此值作为int类型处理

浮点型:float 4   double 8

  1. 默认数据类型是double
  2. 浮点类型不能精确表示一个小数 使用后面的内容Bigdecimal

字符型:char

  1. 只能表示单个字符
  2. 使用单引号表示

char c =’你’

char c1=97;

0:48  a:97  A:65

布尔型:Boolean

True or false

引用数据类型: 类,数组,接口

Day2:

进制:

10进制

8进制

16进制

2进制<------->10进制


类型转换:

自动类型提升:

小的数据类型可以自动转换成大的数据类型

Byte--->short--->int--->long--->float--->double

强制类型转换:

小的数据类型 标识符=(小的数据类型)大的数据类型的值;

Int a=(int)3.14;

大的数据类型——>小的数据类型

算术运算符

+

-

*

/:整数相除不保留小数部分

%:取余数

++

--

前++ 后++

a++先运算后加一

++a先加一再运算

例:

Int i =2;

I*=i++;

Print(i);

I=4

赋值运算符:

=

+=

-=

*=

/=

%=

使用赋值运算符是不会发生类型转换的

如:

byte b=10;

byte b1=20;

b+=b1;

b还是byte类型

但是如果是b=b+b1   b会变成int型

比较运算符:

>

<

>=&<=

!=

==:表示两值是否相等

注意:结果都为Boolean型

Day3

逻辑运算符:

&:两边都为true结果也为true

|:能true就true

!:取反

^:不同为true 相同为false

&&:当前面的表达式为false时,不再计算后面的表达式

||:当前面的表达式为true时 不在计算后面的表达式

Day4

While(){}

Do{}while();

For(){}

随机数公式

Int num=(int)(Math.random()*(n-m+1);

Int num1=(int)(Math.random()*(55-44+1)+44);

Break:结束循环

Continue:结束本次循环 继续下一循环

Return:结束方法

嵌套循环:把一个循环作为另一个循环的循环体:

外层控制行数

内层控制列数

外层循环执行一次,内层循环执行一遍

Day5

数组:存储相同类型数据的有序集合。

数组的初始化:

静态初始化:

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

静态初始化方式二:

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

区别:

  1. 静态初始化方式一 声明和赋值必须放在一起
  2. 静态初始化方式二 声明和赋值可分开

Int [] arr;

arr =new int[]{};

动态初始化:

数据类型[]数组名=new 数组类型[数组的类型];

默认值问题:

Byte 0

Short 0

Int 0

Long 0

Float 0.0F

Double 0.0

Boolean false

String null

数组的注意

  1. 数组在使用时必须指明长度
  2. 数组有一个属性用来表示长度 length
  3. 数组通过下标访问[0,length-1]
  4. 数组必须存储相同类型的数据

数组的遍历

  1. 普通for循环

For(int i=0;i<arr.length;i++){}

  1. 增强for循环

For(数据类型 标识符:数组名){

标识符代表数组中每一个元素}

冒泡排序

1.当前一个数大于后一个数,两数交换位置

2.经过比较 数列会分为两部分 一部分是有序的,一部分是无序的,在进行比较时应专注于无序的部分

3.一个含有n个数的序列最多经过n-1次即可有序

Day6

二维数组

数组的元素是一维数组 则此数组是二维数组;

n维数组:数组元素是n-1维数组

二维数组的声明

数据类型[][]数组名;

//静态初始化方式一:

数据类型[][]数组名={{一维数组},{一维数组}}

静态初始化方式二:

数据类型[][]数组名=new 数据类型[][]{{},{}}

动态初始化方式一:

数据类型[][]数组名=new数据类型[][];

动态初始化方式二:

数据类型[][]数组名=new数据类型[4][];

例子:String[][]strArr=new String [5][];

strArr[0]=new String[]{“李白”};

strArr[1]={“李白”}//错误

遍历二维数组

普通for

Int[][]arr ={{10,20},{66,88}};

For(int i=0;i<arr.length;i++){

 for(int j=0;j<arr[i].length;j++){

  System.out.print(arr[i][j]);

 }

System.out.println();

}

加强for

For(数组元素类型 标识符:数组名){

System.out.print(标识符);

}

System.out.println();

For(int[] e:arr){

 For(int ele:e){

  System.out.print(ele);

 }

 System.out.println();

}

面向对象:

面向对象:先有对象 才有操作

面向过程:12345

类和对象:

类:图纸 模版

对一类事物共有特征的抽象概括

对象:真实存在的个体

创建类:

[权限修饰符]class 类名{}

class teacher{

String name;

char sex;

int age;

}

创建对象:

类名 标识符=new 类名();

Teacher teacher =new Teacher();

Java.until.Scanner in =new java.until.Scanner(System.in);

类中的成员:

属性(成员变量)

方法

构造器

内部类

代码块

内存图:!!!!

包:

1.不同的包下可以存在同名的类

2.包:对代码进行分类管理

3.包名:所有字母小写

Day7

一.成员变量

1.1非静态成员变量

1.2静态成员变量

相同点:位置在类中方法外

不同点:

1.有无static修饰

有:类变量,静态变量

无:实例变量

2.内存中的份数不同:*****

类变量:内存中只有一份

实例变量:每创建一份都会开辟一块独立的空间

3.调用方式不同

类变量:类名.属性名

实例变量:对象名.属性名

4.生命周期不同:

类变量:随着类的加载而加载 随着类的消亡而消亡

实例变量:随着对象的创建 对象消失(当对象没有引用指向时)被垃圾回收站回收

5.存储的位置不一样:

                                                                类变量:方法区

实例变量:堆中

代码块是一行行被执行的

  • 方法

方法:方法是对功能的封装

方法种类:

  1. 有static 修饰的方法 非静态方法

[权限修饰符] static 返回值类型 方法名(形参列表){方法的范围}

  1. 没有static修饰的方法 非静态方法

[权限修饰符]返回值类型  方法名(形参列表){方法的范围}

返回值类型

Public static 返回值类型 方法名(形参列表){}

返回值类型:void 不需要返回值

返回值类型:

基本数据类型

引用数据类型

注意:当方法有返回值时,必须return一个类型范围内的数据。否则会报错

形参列表:

形参:形式参数

实参:实际参数

区别:

  1. 位置不同

形参:方法的声明处

实参:方法的调用处

  1. 作用不同:

形参:1.接收方法调用处传递的实际的值

2.规定方法调用处传递实参的数据类型

实参:给形参传递值

静态方法和非静态方法的区别:

1.静态方法    静态的方法只能调用静态的方法和静态的属性 不用【直接】引用非静态的资源(属性 方法)

2.非静态方法 不仅可以调用非静态的方法和属性 也可以调用静态的方法和属性

Why:因为我们静态修饰的资源随着类的加载而加载,非静态资源需要通过对象去调用,当静态资源准备完毕后,对象可能还没有产生。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值