来黑马快一个月了,说实话,对一个以前每天9点以后起床的人来说,现在最大困难就是每天不够睡,每天早上6点左右起床,开车30公里到学校,晚上9点半30下课,再开30公里回家,很难想象已经安逸了好几年的我是如何坚持的。也许这是就是改变的痛,身边好几个人都跟我说程序员是吃青春饭的,像你都26,还学个毛呀?而我想说的是就这样的人学完了,在一家公司干个一两年,铁定能是领导了呀,哈哈......
也许确实是在社会混了太久了,心很难静下来,家里老婆怀孕了,事情也多。老师讲的我都能听懂,逻辑思路也都很顺,就是自己写的时候总是丢三落四的。算好君哥和志恒哥都很耐心,一遍又一遍的给我讲不会的地方。说实话让我一个零基础才刚刚学java并且学的不太好的人来写技术贴,实在是难难难.......所以只有课堂笔记分享给大家......
1、Java语言发展史
詹姆斯·高斯林 JVM,JRE,JDK 总结一句话JDK包含JRE 和开发工具包 JRE 包含 核心类库和JVM 2、Java中数据类型的分类 基本数据类型 八大数据类型 整数类型:Byte short int lang 小数类型:float double 字符型:char 布尔型 boorlean 引用数据类型 类 ,数组,枚举(暂时没学),接口 3、数据类型转换 隐式转换 byte,short,char -- int -- long -- float -- double 强制转换: 目标类型 变量名 = (目标类型) (被转换的数据); 4、算数运算符++和- - 的用法+运算符: 算术运算符
关系运算符
赋值运算符
逻辑运算符
三元运算符.
一. 算术运算符;
1. 基本运算符
+ , - , * , /.
注意: 整数相除到的只能是整数,要想得到小数必须有浮点数参与运算.
2.取余 %
% : 用于获取两个数据相除时的余数.
/ : 用于获取两个数据相除时的商.
a-(a/b)*b=a%b;
3.+的常见操作
字符参与加法运算,其实是拿字符在计算机中存储的数据值来参与运算的
'A' 65
'a' 97
'0' 48
字符串参与加法运算,其实做的不是加法运算,而是字符串的拼接.(从左到右运算)
4. ++ 和 -- 的用法
++ -- :自增 自减,用于对变量加1或者减1.
++ --既可以用在变量的后面,也可以放在变量的前面
++或者--单独使用的时候,放在前面和后面,结果一样;
参与其他操作的时:
++在后面,先拿变量做操作,然后变量再++;
++在前面,先变量++,再拿变量参与操作
二, 赋值运算符
基本的赋值运算符 : =
扩展的赋值运算符 : +=, -=,*=,/=.......
+=的操作
拿+=的左边和右边的数据做+,然后把结果赋值给左边.
注意 :扩展的运算符,隐含课强制类型转换.
三, 关系运算符.
== != > < >= <=
关系运算符的结果是boolean的类型的
注意事项:
千万不要把==写成=
四, 逻辑运算符;
用于连接关系表达式.
&(与) |(或) ^(异或) !(非)
&& ||
&:有false则false
|: 有true则true
^: 相同为false,不同则true;
!: true则false, false则true;
&&: 和&的结果一样,具有短路效果,左边为false,右边不执行
||: 和|的结果一样,具有短路效果,左边为true,右边不执行
五, 三元运算符;
关系表达式?表达式1:表达式2;
执行流程:
A: 计算关系表达式的值,看是true还是false
B: 如果是true,表达式1就是结果;
如果是false,表达式2就是结果;
键盘录入
为了提高程序的灵活性,我们就把数据改进为键盘录入
如何实现键盘录入数据呢?我们只能使用jdk提供的类Scanner.
步骤;
A; 导包
import java.util.Scanner;
B; 创建键盘录入对象
Scanner sc = new Scanner(System.in);
C; 接受数据;
int i = sc.nextInt();
9、运算符: 算术运算符 关系运算符 赋值运算符 逻辑运算符 三元运算符. 一. 算术运算符; 1. 基本运算符 + , - , * , /. 注意: 整数相除到的只能是整数,要想得到小数必须有浮点数参与运算. 2.取余 % % : 用于获取两个数据相除时的余数. / : 用于获取两个数据相除时的商. a-(a/b)*b=a%b; 3.+的常见操作 字符参与加法运算,其实是拿字符在计算机中存储的数据值来参与运算的 'A' 65 'a' 97 '0' 48 字符串参与加法运算,其实做的不是加法运算,而是字符串的拼接.(从左到右运算) 4. ++ 和 -- 的用法 ++ -- :自增 自减,用于对变量加1或者减1. ++ --既可以用在变量的后面,也可以放在变量的前面 ++或者--单独使用的时候,放在前面和后面,结果一样; 参与其他操作的时: ++在后面,先拿变量做操作,然后变量再++; ++在前面,先变量++,再拿变量参与操作 二, 赋值运算符 基本的赋值运算符 : = 扩展的赋值运算符 : +=, -=,*=,/=....... +=的操作 拿+=的左边和右边的数据做+,然后把结果赋值给左边. 注意 :扩展的运算符,隐含课强制类型转换. 三, 关系运算符. == != > < >= <= 关系运算符的结果是boolean的类型的 注意事项: 千万不要把==写成= 四, 逻辑运算符; 用于连接关系表达式. &(与) |(或) ^(异或) !(非) && || &:有false则false |: 有true则true ^: 相同为false,不同则true; !: true则false, false则true; &&: 和&的结果一样,具有短路效果,左边为false,右边不执行 ||: 和|的结果一样,具有短路效果,左边为true,右边不执行 五, 三元运算符; 关系表达式?表达式1:表达式2; 执行流程: A: 计算关系表达式的值,看是true还是false B: 如果是true,表达式1就是结果; 如果是false,表达式2就是结果;
键盘录入 为了提高程序的灵活性,我们就把数据改进为键盘录入 如何实现键盘录入数据呢?我们只能使用jdk提供的类Scanner. 步骤; A; 导包 import java.util.Scanner; B; 创建键盘录入对象 Scanner sc = new Scanner(System.in); C; 接受数据; int i = sc.nextInt();
16、随机数 Random r = new Random(); (导包) – 获取随机数 int number = r.nextInt(10); (接收参数) 17、数组的定义 格式1:数据类型[] 数组名; 格式2:数据类型 数组名[]; 二维数组格式 定义格式 数据类型[][] 数组名; 数据类型 数组名[][]; 不推荐 数据类型[] 数组名[]; 不推荐 初始化方式 数据类型[][] 变量名 = new 数据类型[m][n]; 数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}}; 简化版格式:数据类型[][] 变量名 = {{元素…},{元素…},{元素…}}; 18、方法 方法的定义格式 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2…) { 函数体; return 返回值; } 18、方法重载的概述和基本使用在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。 方法重载特点 与返回值类型无关,只看方法名和参数列表 在调用时,虚拟机通过参数列表的不同来区分同名方法 方法重载:在同一个类中,出现了方法名相同的方法,这就是方法重载。 * 方法重载特点: * 方法名相同,参数列表不同。与返回值无关。 * 参数列表不同: * 参数的个数不同。 * 参数对应的类型不同。 * 注意:调用方法的时候,java虚拟机会通过参数列表的不同来区分同名的方法 19、方法的形式参数为基本数据类型方法的参数是基本类型的时候: 形式参数的改变不影响实际参数。 形式参数:用于接收实际数据的变量 实际参数:实际参与运算的变量 20、面向过程特点与面向对象特点A:面向过程: 强调的是过程,所有事情都需要自己完成 B:面向对象: 是一种更符合我们思想习惯的思想(懒人思想,我把事情自己不做,交给别人去做) 可以将复杂的事情简单化(对使用者来说简单了,对象里面还是很复杂的) 将我们从执行者变成了指挥者角色发生了转换
类和对象的概念 a:类:是一组相关的属性和行为的集合(我们班所有的同学都具备相同的属性和行为,比如:姓名,年龄,学习,这样就把所有的学生成为学生类) b:对象:是该类事物的具体体现(说某个同学时,他都具备自己特有的属性和行为) c:举例: 类 学生 对象 具体的某个学生就是一个对象 比如:车是一个类,具体的开的奔驰、宝马,就是对象 private关键字A:private关键字: a:是一个权限修饰符。 b:可以修饰成员(成员变量和成员方法) c:被private修饰的成员只在本类中才能访问。
this关键字A:this:代表所在类的对象引用 方法被哪个对象调用,this就代表那个对象 B:什么时候使用this呢 局部变量和成员变量重名 构造方法格式:A:构造方法格式 a:方法名与类名相同 b:没有返回值类型,连void都没有 c:没有具体的返回值 21、使用API步骤:A:打开帮助文档 B:点击显示,找到索引,看到输入框 C:输入你要查找的内容 D:看包 E:看类的描述 F:看构造方法 G:看成员方法
22、String类的判断功能 boolean equals(Object obj):比较字符串的内容是否相同 boolean equalsIgnoreCase(String str):比较字符串的内容是否相同,忽略大小写 boolean startsWith(String str):判断字符串对象是否以指定的str开头 boolean endsWith(String str):判断字符串对象是否以指定的str结尾 String类的获取 String类的获取功能: * int length():获取字符串的长度,其实也就是字符个数 * char charAt(int index):获取指定索引处的字符 * int indexOf(String str):获取str在字符串对象中第一次出现的索引 * String substring(int start):从start开始截取字符串 * String substring(int start,int end):从start开始,到end结束截取字符串。包括start,不包括end String类的转换功能 char[] toCharArray():把字符串转换为字符数组 String toLowerCase():把字符串转换为小写字符串 String toUpperCase():把字符串转换为大写字符串
23、String和StringBuilder的区别: String的内容是固定的 StringBuilder的内容是可变的 StringBuilder类的常用方法 A:构造方法: StringBuilder()
|