记录我在沈阳华清的二三事(一)

     道阻且长,行则必至。路途虽然遥远,步履虽然蹒跚,但只要不停前进,就一定会抵达彼岸。这是第一周来到沈阳华清远见学习,我,在不断的前行着,也在不断记录着...

Day1

JDK —— Java Develop Kits (Java开发工具集)

JRE —— Java Runtime Environment (Java运行环境)

JVM —— Java Virtual Machine(Java虚拟机)

ClassLoader —— 类加载器

ByteCode Verifier —— 字节码校验器

Runtime Interpreter —— 运行平台

GC —— Garbage Collection 垃圾回收机制

IDE —— 集成开发环境

  • 环境安装(必会)
  1. jdk安装与环境变量的配置
  2. Eclipse的使用
  • Java常识

Java之父——James Gosling

Java所属公司 —— Sun公司发行,被Oracle公司收购

Oracle公司拥有软件:

数据库:Oracle、MySQL

语言环境:Java

Java开发平台:

JAVAME:微缩平台(嵌入平台,嵌入式产品)

JAVASE:标准平台(基础学习、桌面应用开发)

JAVAEE:企业平台(开发企业级项目)

  • Java程序运行过程(掌握)
  1. 编译过程

源代码(*.java) ——> Java编译器(javac) ——>字节码文件(*.class)

  1. 解释运行过程

Class Loader(类加载器) ——> ByteCode Verifier(字节码校验器) ——> Runtime Interpreter(运行平台)

  • 垃圾回收机制GC(掌握)
  1. 作用:回收系统不用的内存空间
  2. 工作时间:在JVM(JAVA Virtual Machine)空闲时自动回收,在内存接近满溢时自动回收
  3. 垃圾回收机制为系统级守护线程,不用程序员手动调用(程序员无法精确控制和干预)
  • JAVA类的规则说明(掌握)
  1. 被public所修饰的类,必须和该文件名相同
  2. 一个java文档可以有多个class,但最多只能有一个被public所修饰的类
  3. 同一个包下,类名不能重复
  4. 类名起名时所有单词的首字母大写(规范)
  5. 有几个类,就会编译生成几个.class文件
  • 标识符和关键字(掌握)

标识符,给变量、方法(函数)、类等起名用的单词

  1. 必须用数字、字母、“_”,“$”、“¥”组合而成,数字不能开头
  2. 不能与关键字相同
  3. 区分大小写
  4. 避免与系统类库同名
  5. 尽量达到见名知意

注:关键字,系统预留的作为特殊用途的单词,一共有51个。

所有的关键字都是小写的。

true和false不是关键字,boolean类型的两个值。

NULL,DEFAULT,DO也不是关键字

  • java注释

// 单行注释

/*...*/ 段注释

/** ... */ 生成javadoc文档的注释(经常用于编辑版权)

  • JAVA数据类型(掌握)
  1. 数据类型

基本数据类型(简单数据类型)

整数类型 byte(字节)、short(短整型)、int【默认类型】、long(长整型)

浮点类型 float(单精度浮点型)、double(双精度浮点型)【默认类型】

字符类型 char

布尔类型 boolean : true false

记:b  b  c  s  i  f  l  d

1  8  16 16 32 32 64 64

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

  1. 整型相关知识点

十进制整数,如21, -1110, 0。

八进制整数,要求以0开头,如0123

十六进制数,0-9,A,B,C,D,E,F组成。要求0x或0X开头,如0x123

二进制数:101001

  1. 基本数据类型知识点

boolean  true 真 false 假 没有非0即为真的说法

char  用的是’’ char类型可以存整数,输出时为某个字符的ASCII码

float 赋值时必须加F 或f

long 赋值时的l可加可不加

  1. 数据类型转换(重点)

自动类型转换

整数类型和浮点类型从小到大都能自动类型转换

  1. char类型 —— > int 类型
  2. int 类型 ——> double 类型

强制类型转换(造型)

类型 变量名 = (想要转换的类型) 值;

Day2

补充与复习:

知识点补充:

1.long l = 1000000000L; 当long类型赋予的值超出int范围时,必须加L或l,若在范围内可不用加,为自动类型转换 int 转 long

2.byte类型计算

byte b1 = 1;

byte b2 = 2;

byte b3 = b1+b2; //报错,结果为int

  • char类型和String类型

char类型为基本数据类型,String是类为引用数据类型

Java字符采用Unicode编码,每个字符(每个Unicode编码)占两个字节,转义字符如下:

String类型为字符串,用双引号“”,可以保存多个字符。

char类型为单个字符,用单引号’’,只能保存单个字符。

  • 输入与输出

输出语句

System.out.print();  //不换行打印

System.out.println(); //换行打印

输入语句

Scanner scan = new Scanner(System.in);//定义一个扫描器对象,从系统输入流中扫描

String str = scan.next(); //开始扫描一行,并且赋值给str

scan.nextXXX();方法被调用一次,则可以多扫描一次

  • 运算符(掌握)
  1. 算术运算符+ - * / % 

+-*/ 按照四则运算法则,先算*/ 后算+-

/ 如果两侧为整数类型,则 / 为整除,最后的结果也为整数类型

% 取余 模除 取相除后的余数,小数也可用

/后面如果是0,会报算术异常

练习:输入一个四位数,分别提起个位十位百位千位,并打印

  1. 赋值运算符=  += -= *=  /= %=

从右往左,将右侧的算式算完赋值给左侧

a+=b   相当于 a = a+b  

/= 后不能跟0

  1. 自增自减运算符 ++ -- (重点)

++ 在前  先自增1,再参与运算

++ 在后  先原值计算,再自增1

 

  1. 关系运算符> < >= <= == !=

所有的关系运算符返回的都是boolean类型的值,表示这段关系是否成立

== 和 = 区别 == 表示判断两边的值是否相等 = 表示将右侧的值赋予给左侧

== 在引用数据类型上使用时还要注意符号两侧的地址是否相同,该用.equals()

  1. 逻辑运算符&& || ! ^

&& || :短路与 和 短路或

与: 同真为真,一假则假

或: 同假为假,一真则真

短路原则:如果左侧表达式能得到整个表达式的结果,则右侧表达式被短路(不再参与运算)

非: 真的变假,假的变真

异或:  相同为假,不同为真

  1. 位运算符 & | << >>  (了解)

& 按位与

|  按位或

将前后值都转换为2进制,按照位置进行 & | 运算

3 & 7 = 7

0011

0111 &   同时为1结果为1 有一个为0结果为0

0111 ——> 7

<< 左移位

>> 右移位

2<<2

2——> 0010  左移两位 用0补位 001000 ——>8

2<<2 = 8

  1. 三目运算符 ?:

判断表达式?表达式1:表达式2;

判断表达式结果为boolean类型的值

如果判断表达式结果为true ,则执行表达式1

如果判断表达式结果为false ,则执行表达式2

  1. 逗号运算符 ,

定义变量时,可以同类型的变量用,分隔

  1. 运算符优先级

如果想先算的表达式,用()括起来

  1. “+”的特殊用法

如果+的两侧有字符串,则+为字符串连接符

如果两侧只是数,则作为加法

 

 

Day3

补充与复习:

复习:

  1. 输入与输出语句

System.out.println();

Scanner scan = new Scanner(System.in);

scan.nextXXX();

  1. Java运算符

算术运算符 +-*/%

    赋值运算符 = += -= *= /= %=  a+=b  a=a+b

自增自减运算符 ++ --

关系运算符 > < >= <= != ==

逻辑运算符 && || ! ^

位运算符 & | << >>

三目运算符  判断表达式?表达式1:表达式2

逗号运算符 ,

  • if...else...语句
  1. 语法:
  1. if...else...语法

if(判断表达式){

语句块1....

}else{

语句块2....

}

  1. 先执行判断表达式,返回布尔类型返回值
  2. 如果为true,则执行语句块1
  3. 如果为false,则执行语句块2
  1. if ... else if....语法

if(判断表达式1){

语句块1....

}else if(判断表达式2){

语句块2....

}

......

else{

语句块n....

}

  1. 示例:

练习:输入三个数,输出三个数中最大的数

 

练习:从控制台输入一个数num与之前定义的数n进行比较如果num==n,提示恭喜你猜对了”;如果num<n提示抱歉猜小了”,如果num>n提示抱歉猜大了”。

练习:输入年份,判断该年是闰年还是平年

四年一闰,百年不闰,逢四百年再闰

  • switch...case...语句
  1. 语法:

switch(变量){

case 值1:

语句块1...

[break;]

case 值2:

语句块2...

[break;]

......

case 值n:

语句块n...

[break;]

default :

语句块n+1...

}

  1. 首先变量的值是多少,根据case值来执行对应的语句块
  2. 如果语句块中不包含break语句,则会从该case一直往下执行
  3. 如果没有对应的值,则执行default当中的语句块。
  4. 在Java1.7之前switch后变量类型只能是byte short int char

之后加入了String类型

注意:

没有break语句

  1. case语句的顺序会影响最后的结果
  2. default语句的位置也会影响最后的结果

  1. 示例:

     

 

练习:从控制台输入数字,如果数字在1-12,输出对应的月份和天数。否则输出非法数据。使用swtich语句编写代码。

练习:一个景区根据游人的年龄收取不同价格的门票,20岁以下20元钱,20到60岁40元钱,60岁以上免费。请输入年龄,然后给出票价

  • while循环
  1. 语法:

int i = 值;    // 循环初始值

while(判断表达式){

循环体...

i++ ; // 增量表达式

}

  1. 示例:

练习:输出100以内所有偶数

 

练习:100以内将所有敲7中不能说的数用*来输出

所有7的倍数和数字中带7的数

练习:输出100以内所有奇数和

练习:输出n!      10! = 10*9*8*7*6*5*4*3*2*1

  • do...while循环
  1. 语法:

do{

循环体...

}while(判断表达式);

  1. 示例:

  1. 与while循环的区别

  

do...while不管循环条件是否成立,必然执行一次循环体

while先判断循环条件是否成立,很有可能一次循环都不执行。

  • for循环
  1. 语法:

for(循环初值表达式;循环判断表达式;增量表达式){

循环体...

}

  1. 三个表达式都能省略,中间的;不能省略
  2. 初值表达式省略,可以在循环上定义初值
  3. 判断表达式省略,形成无限循环
  4. 增量表达式省略,也会形成无限循环

 

Day4

补充与复习:

复习:

  1. if-else
  2. switch-case
  3. while
  4. do-while
  5. for
  • breakcontinue--(掌握)

break语句可以在switch.case还有循环中使用

continue可以在循环中使用

break跳出整个循环

continue跳出本次循环

 

return;语句可以跳出该方法(函数)

System.exit(0); 用来退出整个程序

  • 数组

数组用来存多个相同类型的数据

  1. 定义数组
  1. 数据类型[] 数组名;     int[] array;
  2. 数据类型 数组名[];   double array_d[];
  1. 数组赋值
  1.  数组定义并赋值  数据类型[] 数组名 = {值1,值2,值3....};

int[] array = {1,2,3,4,5};

  1. 数组定义并开辟空间 数据类型[] 数组名 = new 数据类型[空间大小];

String[] str_arr = new String[10];

  1. 访问数组中的元素

使用下标访问数组中的元素,下标从0开始

System.out.println(array[0]);

修改元素的值

array[2] = “哈哈”;

  1. 数组的属性和方法
  1. 属性:数组的长度(元素个数)

arr.length

  1. int arr2[] = arr.clone() 克隆方法,将arr里的值复制给arr2,但是arr和arr2地址是不同的
  2. Arrays.sort(数组); 将数组进行正序排列

  • foreach循环(增强for循环)用于数组、集合的遍历

语法:

for(和数组相同的数据类型 变量名:数组名){

System.out.println(变量名)

}

因为foreach使用临时变量将数组中的值进行赋值查看,所以改变临时变量不会改变数组原值,foreach只能查看不能修改

  • 顺序查找(掌握)

定义一个int型数组,存储十个值。从控制台输入一个数字,在数组中进行查找,如果找到,输出第一次找到该输入值的下标,如果没有找到,输出-1;

 

  • 二分查找[折半查找]算法(掌握)

要求:数组必须是有序的,要求每一个元素的值比前面的大。

(还没学,下次发...)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值