A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 顾大圣 初级黑马   /  2017-11-29 21:55  /  682 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 小石姐姐 于 2017-11-30 10:16 编辑

Day01
java的创始人是:詹姆斯·高斯林
   jdk 1.5 重名为javaEE javaME, javaEE

JVM:java虚拟机(JVM Java Virtual Machine),java程序需要运行在虚拟机上,不同平台有自己的虚拟机,因此java语言可以跨平台
JRE:运行环境,包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。
JDK:java开发工具包,JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。是一个开发工具
JDK>JRE>JVM
基本语句
public class 文件名 {
public static void main(String[] args ){}     
                                  }
注释
单行注释
–       格式: //注释文字
多行注释
–       格式: /*  注释文字  */
文档注释
–       格式:/** 注释文字 */   注意  注释不能嵌套使用;
关键字:被JAVA语言赋予了特定含义的单词
特点:  组成关键字的字母全部小写   常见的代码编辑器都有一个不同颜色的表达
常量 :  在程序的执行过程中,其值不可以发生改变的量
常量分类  : 1 字符串常量 "Helloworld"
                     2 整数常量      12,-23
                    3 小数常量          2.28
   4 字符常量         'a'
   5 布尔常量          true,false
   6空常量                null
变量:是内存中的一块区域,
组成 :         A对区域要有限定
    如何限定呢,用数据类型来限定
B必须对区域给一个名称 变量名
C区域必须有内容  初始化值
                   定义格式  数据类型   变量名 =   初始化值
  bit  比特  是计算机储存的最小单元信息,通常用B表示字节
byte ,字节 是计算机最小储存的单位
数据类型
  JAVA是一种强类型语言,针对每一种数据都给出了明确的类型.
数据类型分类:
A 基本数据类型
B 引用数据类型(类,接口,数组)
基本数据类型  4类 8种
整形       字节数
byte         1           2^8
short        2                 2^16
int                 4                    2^32
long         8                2^64
浮点型
float         4        
double        8
字符型
char                2       -128-127
布尔型
boolean        1        true/false
注意:整数默认是int类型,浮点数默认是double类型
定义long类型数据的时候,要加L或者l 建议加L
定义float类型数据的时候,要加F或者f,建议加F

标识符   给包,类,方法,变量等起名字的符号
组成规则   
A unicode 字符  
         数字字符 英文大小写字母 汉字(不建议使用汉字)
B 下划线_
C美元符$
注意  A 不能以数字开头   B 不能是JAVA中的关键字

常见命名规则
   A基本要求
      见名知意   
B常见的命名
   a包   (其它就是文件夹,用于类管理)
全部小写  多级包,隔开
举例 com com.itheima
b类
一个单词首字母大写
举例  Studen,Car
多个单词每个的首字母大写
举例  HelloWord
c:方法和变量
一个单词首字母小写
举例 age,show
多个单词组成第二个单词的首字母大写
ageAge
变量定义的注意事项
A变量未赋值不能直接使用
B变量只在它所属的范围有效(变量属于它所在的那对大括号)
C一行可以定义多个变量,但是不建议

类型置换
隐式转换
    byte  short char --> int -->long --->float --- >double
注意:整数默认是int类型,浮点数默认是double类型
定义long类型数据的时候,要加L或者l 建议加L
定义float类型数据的时候,要加F或者f,建议加F
强制转换
   目标类型   变量名 =  (目标类型)  (被转换的数据)
建议,数据做运算,结果应该是什么类型,就用什么类型
day02
Eclipse的概述和安装

安装可能出现问题
需要首先配置java环境
32位和64位要与jdk匹配

Eclipse
src 源代码目录
bin 编译文件目录
创建项目=>包=>类
Eclipse快捷键及常用操作
内容辅助键 alt+/
注释
单行 选中内容,ctrl+/ 取消再来一次
多行 选中内容,ctrl+shift+/ 取消注释ctrl+shift+\
格式化 ctrl+shift+f
整行前移 选中内容,shift+tab
ALT+ENTER属性;
ct+d删除一行;
shift+enter在任何位置下一行;
左手shift+字母切换大写
选中+shift+tab:取消一个缩进;选中+tab:整体缩进
格式化设置为ctrl+alt+f
选中包,ctrl+n:快速新建包和类。
重命名项目、包、类:右键-Refactor-Rename。或者F2
导入项目:在项目区域右键-import-General,展开-Existing Projects into Workspace-点击next-选择要导入的项目-注意:这里选择的是项目名称
导包快捷键:ctrl+shift+o
shift+alt+a:开启框选
ctrl+enter:貌似可以用来快速打断字符串
运算符
算术 +,-,*,/,++,--,%
字符与数字相加为ASCII码相加,与字符串相加为拼接。
/:整数相除只能得到整数,要想得到小数必须有浮点数参与计算。【例如:3/4=0;3.0/4=0.75。】(隐式转换)
+:字符参与加法运算,其实是拿字符在计算机中储存的数据值来参与运算的。‘A’+10=75,【记住:'A'65 'a'97 '0'48】。
+:字符串的加法是与其他拼接,但是注意【运算是从左到右】。10+20+“ab”=30ab;“ab”+10+20=ab1020。
常用方法:数值转换为字符串:+空字符串,例如:10+“”。
++、--一般为单独使用!但是也可以用在前面:参与其他操纵的时候,++在后面先拿变量操作,然后变量++;在前面反之。例如int i=1; a=i++输出为1因为【“i首先把值给表达式,然后自增1”】,a=++i输出为2。
%:取余得数的正负已左边的正负为准。例如:-12%5=-2,12%-5=2。
%用途:
判断是否是奇偶数:偶数x%2=0,奇数x%2=1。
【判断是否能被某个数整除:余数是零则可以整除。】
【获取一个数的个位、十位、百位……:取个数位1234%10=4,取百位1234/100%10=2,取千位1234/1000%10=1】

赋值 =,-=,+=,*=……
注意:-=,+=,*=……【隐含了强制转换,例如:byte a=1; a+=10相当于a=(a的强制类型)(a+10),但是写成a=a+10错误】
关系 ==,!=,>,>=,<,<=
注意:把==写成=不会报错。例如:a==1输出true,a=1输出为1。
逻辑 &,|,^,!,&&,||
^为相同则false,不同则true。举例:判断情侣关系。
使用^实现两个int变量交换(boolean变量也可以,double、char、String不可以使用),不借助临时变量,不增加系统资源的消耗,代码如下:
a=a^b;
b=a^b;
a=a^b;
【&&与&的区别:&&有短路效果,左边为false则不再执行。&左边无论什么右边都执行。】
【||与|的区别:||为左边为ture则右边不执行。|左边无论什么右边都执行。】
闰年算法:(i % 4 == 0 && i % 100 != 0) || (i % 400 == 0)
闰年算法说明:四年一闰: 能被4整除的是,百年不闰: 能被100整除的不是,四百年再闰: 能被400整除的是
三元
格式:(关系表达式)?表达式1:表达式2;
执行过程:如果表达式为true,表达式1为结果,反之为表达式2。
返回值取表达式1或者表达式2。

键盘录入
使用步骤
导包:
手动录入:import java.util.Scanner;
导包还可在下一步报错时点击自动生成。
快捷键(推荐):ctrl+shift+o
创建键盘录入对象:
Scanner sc=new Scanner(System.in);
接收数据:
int i=sc.nextInt();
String i=sc.next();
double i=sc.nextDouble();

day03
流程控制语句(没有{}的语句只控制;之前的语句,也就是只控制下一行语句)
顺序结构
选择结构(我的选择顺序:三元运算符=>switch语句=>if语句。没有{}的语句只控制;之前的语句,例如:if(a==b)a+b=c;)
if
-注意:只声明没赋值的变量,通过if语句时没有赋值的话,执行程序运行时报错不能运行。
switch
语句格式:
switch(表达式){//【表达式只能是:bety,short,int,char,String,枚举。】
cast 值1:【只能是常量,而且值的类型要与小括号中一样】
语句体1;
break;//中断【如果这里不写break会继续运行一个语句体,这叫“case穿透”】
cast 值2:
语句体2;
break;
……
default://所有值不匹配执行
语句体n+1;
break;//最后的一个break可以省略
}

循环结构
for(知道循环次数的场合使用)
for(初始化;判断条件语句;控制条件语句)
{ 循环体语句;
}
多条语句:for (int strart = 0,end=arr.length-1;strart<=end;start++,end--) {}
while【不知道循环次数的场合使用】
初始化语句;
while(判断条件语句){循环体语句;控制条件语句;
}
无限循环:while(true){};//while(true){}可以通过break中断
do…while(不知道循环次数的场合使用,至少执行一次,一般不用)
初始化语句;
do {
循环体语句;
控制条件语句;
}while(判断条件语句);


三种循环语句的区别
do……while循环语句至少执行一次循环体。
for循环结束后,初始化的变量不能再被使用了,而while循环结束后,初始化的变量还可以继续使用。
推荐使用循环顺序:for=>while=>do…while。
跳转控制语句(离开使用场景没有意义!)

break:中断
使用场景:
switch语句中
循环中
作用:结束所有循环!(如果循环嵌套使用的话,只中断break语句所在的最近的循环)
continue:继续
使用场景:循环中
作用:结束本次循环!
day04
Random

生成一个随机数
导包:import java.util.Random;
创建对象
Random r=new Random();
获取随机数
int number=r.nextInt(x);//x为任意整数
上面产生一个数0<=number<x的数据。 [0,x)
【获取1-100之间随机数:r.nextInt(100)+1;】
【注意:生成0-9的随机数:r.nextInt(10);】

数组(数组长度一旦确定不可改变!)

一维数组:
格式(推荐):数据类型[] 数组名; int[] arr;
格式2:数据类型 数组名[]; int arr[];
初始化数组:
动态初始化:只给出长度,系统给出初始化值。
数据类型[] 数组名=new 数据类型[数组长度];
对于长度很长的数组定义之后赋值用!
静态初始化:给出初始化值,系统决定长度。
数据类型[] 数组名=new 数据类型[]{元素1,元素2...}
数据类型[] 数组名={元素1,元素2...}
数组中的元素值:数组名[索引]。索引从0开始。
每一个对象都有默认值
byte,short,int,long 0
float,double 0.0
char ‘\u0000’ ‘’
boolean false
引用类型 null
栈:存储局部变量
堆:存储的是new出来的对象
数组存储的是一个地址值,不同名字的数组可能指向同一个内存地址。
【数组1 = 数组2; 是地址值的相等。】
遍历数组元素:for(int x=0;x<数组名.length;x++){数组};//注意长度减1。
获取最值:
int[] arr={11,33,77,22};
int min =arr[0];
for (int j = 0; j < arr.length; j++) {
if (min>arr[j]) {  min=arr[j];}
}
二维数组:
动态初始化:只给出长度,系统给出初始化值。
数据类型[][] 数组名=new 数据类型[数组长度][数组长度];
静态初始化:给出初始化值,系统决定长度。
数据类型[][] 数组名={{元素1,元素2,...},{元素1,元素2,...}...};//一位数组长度可以不同
这样也正确:int[][] arr =new int[4][];//此时一维数组为null。
查看数组元素:Arrays.toString(arr);=>[1,2,3,4]
Arrays.toString(a)==Arrays.toString(b);这条语句不能判断两个数组相同!
day05
方法概述

定义格式:
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...){  方法体;  return 返回值;}
格式解释:
A 修饰符:目前记住public static
B 返回值类型:用于限定返回值的数据类型
C 方法名
D 参数类型:用于限定调用方法时传入的数据类型
E 参数名:用于接收调用方法时传入的数据的变量
F 方法体
G return 结束方法,并且把返回值带给调用者
两个明确
返回值类型 明确功能结果的返回值类型
参数列表 明确有几个参数,以及参数的数据类型
void
表示无返回值类型,方法只能单独调用,不能赋值调用和输出调用。
如果写return;则方法结束.
注意:return之后方法就结束了!在void方法中,可以用return结束程序.
方法重载
在同一个类中,出现了方法名相同的情况。
特点:
方法名相同
参数类型或数量其中之一不同就可以(也称为方法列表不同)
不能出现方法名相同,参数列表也相同的情况。
方法的形式参数
int a=10;
int b;
change(a,b);//a和b是实际参数,实际参与运算
形式参数:用于接收参数的变量,在方法的声明上
方法的参数如果是基本数据类型:形式参数的改变不影响实际参数
方法的参数如果是引用数据类型(数组为引用数据类型):形式参数的改变直接影响实际参数,但是如果有new出现时应该注意是否修改了数组的引用,可能不影响实际参数


day06
断点调试
作用
查看程序的执行流程
调试程序
添加断点方法:在代码区域的左边双击即可
运行加断点的程序:代码区域--右键--Debug As--Java Application
F6 继续单步运行
看哪些区域
代码区域:看程序执行流程
Debug区域:看程序的执行流程
variable:变量的变化
Console:看程序的输入和输出
关闭断点调试
按红色的停止按钮,再按右上角的"java"返回原来的界面
如何去掉断点
把加断点的操作执行一遍
在Debag视图中,找到Breakpoint,选中要删除的断点,单击双×即可
断点必须加在有效的语句上

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马