萌新当前进度:java英勇黄铜萌新-不屈白银=>50-150=>持续更新中…
写在最前面:
解决萌新一开始最不懂的东西:
1.编译器的使用:
先建一个java项目=>再在src里面,建n个包=>每个包里又可以新建n个类和n个接口(补充一点:①接口只能用来声明方法,不能用来实现②同一个包里的东西全部可以共用)
(1.的进阶:其实包有两种情况,一种是Flat=>同级,另一种是Hierarchical=>层级
一般情况,初学时是遇不到层级关系的,当我们深入学习时会遇到.)
2.链表:
遍历所有结点:
Node node1 = first;
while(node1 != null){
node1 = node1.next;
}
------------------萌新专业分割线-----------------
写在前面:
以上文章,如有那些写的不对或者不妥,欢迎大佬们指正!
------------------萌新专业分割线-----------------
假设我们学过一段时间c/c++之后,再学的java.
------------------萌新专业分割线-----------------
JAVA萌新入门学习经历
(现在前面:确实是萌新,如果哪些比喻不恰当,希望大佬们可以指出,感谢大佬们的关怀(*๓´╰╯`๓)♡)
(JAVA专栏,我打算只用心写一篇博客,博客在精不在多,开写啦,开写啦)
闻一朵花,听一首歌
写一篇博客,开的一手好车,
最后希望能走进大佬们的心窝!-嘿嘿嘿
一、天才第一步,雀氏纸尿裤
我们先首先要搭建JAVA的环境,
JDK是必要的,其次是文本要写的位置,我们写在新建的文本框总感觉不是很舒服,所以MyEclipse10(就不提供下载链接和提取码了,毕竟软件更新的速度太快了,建议大佬们下载当前的最新版本[手动])
------------------萌新专业分割线-----------------
第一次使用JDK的经过:
首先,先在电脑显示屏上新建一个文本框,在文本框上写下Hello World!!!的运行代码,保存,关闭(建议保存到D或E盘的一个JAVA专属文档)。
好嘞,整活!点击电脑显示屏的左下角,输入 运行 ,然后回城—是回车,再输入cmd ,然后回车,(举个例子[接下来会用到这个例子],就以我的电脑为例,我在d盘创建了一个文件,名为JAVA,JAVA里又有一个文本[就是记事本],名为Hellow World.java)此时你会发现:
⭕️1,诶?我的JAVA文档在d盘,你怎么定位到c盘了?=>输入 d:,按回城-回车回车回车;
⭕️2,此时你又会发现: D:> 出现了,此时你需要输入 cd java(有空格);
⭕️3,此时你又又会发现 D:\Java>
,此时你需要输入dir,检测有没有hello world. java的文件,如果有,恭喜你 成功完成了第三步!
⭕️4,此时你需要在 D:\Java> 后面输入 javac hello world. java,如果系统没说什么,恭喜你完成了第四步!
⭕️5,此时你需要在 D:\Java> 后面输入java helloworld,再按下回车!
Hello World!!!弹出
那么这一系列抄作的背后,究竟是人性的扭曲,还是道德的沦丧?是… 好吧,这些操作都是啥意思啊啊啊啊啊啊啊啊?
⭕️1=>找到JAVA代码在你电脑的那个盘
⭕️2=>找到java代码的具体位置
⭕️3=>检测所在文件夹有没有java代码
⭕️4=>检测你写的java有没有错误
javac就是编译java代码的意思,编译通过后会生成一个字节码文件(以.class作为后缀名)
第5步运行的也是字节码文件!
所以当编译成功时,就算把.java文件删了,也是可以运行的(只要.class文件在就可以).
⭕️5=>成功通过编译,就可以运行java代码了
cls是清屏的意思
------------------萌新专业分割线-----------------
MyEclipse10的使用(或者其他的java编译器也基本一致)
先略过
------------------萌新专业分割线-----------------
关于文件后缀名
文件的后缀名只是让系统更容易判断以何种软件打开,注意:文件的后缀名并不改变文件本身的内容,
只要是win10,打开文件,文件的上方会有查看按钮,功能区的右侧会有一项文件扩展名的选项,勾选之后,文件的后缀名就都显示出来了.
------------------萌新专业分割线-----------------
关于注释
//为单行注释
/*
*/为多行注释
/**
*/文档注释,和多行注释的效果完全一致
------------------萌新专业分割线-----------------
关于输出
一、System.out.printIn("");
" "里面写什么就输出什么!
eg:
(1)Sytem.out.printIn(“1+1”);=>输出 1+1
Sytem.out.printIn(1+1);=> 输出 2
(2)Sytem.out.printIn(“100”);=>输出100
Sytem.out.printIn(100);=>输出100
(3)输出1+1=2
Sytem.out.printIn(“1+1” + “=” + “2”);=>输出1+1=2(这里的 加号 是 拼接符 )
Sytem.out.printIn(“1+1” + “=” + 1 + 1);=>输出1+1=11(逻辑错误,错误分析见(4))
Sytem.out.printIn(“1+1” + “=” + (1 + 1));=>输出1+1=2(正确,分析见(4))
(4)=>(3)的拓展
细品这句话:
如果在输出语句中,输出的内容即包含原样输出有包含着数字,一旦输出语句遇到了原样输出,其后所有的用**+**拼接的内容自动变为原样输出.
所以,
举个栗子:
Sytem.out.printIn(“1+1” + “=” + 1 + 1);=>输出1+1=11=>其实就是将1+1和=和1和1进行了拼接,即1+1=11
那么该如何解决以上这个问题呢?
此时,我们可以通过()来提升计算的优先级,来达到目的!
(5)换行
System.out.printIn("");或者System.out.printIn();都可以达到换行的目的!
二、System.out.print();
=>二与一的区别:二的print没有In!
System.out.print();=>只输出内容,没有换行,即不能写成System.out.print("");=>" "里面不能空着!
eg:这个例子两行为一组
System.out.printIn(“hello”);
System.out.printIn(“world”);
=>输出:
hello
world
System.out.print(“hello”);
System.out.print(“world”);
=>输出:
helloworld
--------------------------java好多类,好多对象,好多继承-----------------------
类是对数据和代码的封装,对象是类的一个具体的实例,对象里面就存放着具体的实例和行为,我们可以调用对象中的行为来操作一个行为.
------------------萌新专业分割线----------------- ------------19
关于换行
\n表示换行,\n可以加在print("\n");里 , 也可以加在printIn("\n");里.
System.out.print(" ")只输出内容,不换行
不过,printIn("");本身就自带换行,再加一个\n就表示换两行了.
------------------萌新专业分割线----------------- ------------21
------------------萌新专业分割线----------------- ------------22
如果不用public,那么文件名和程序入口的那个名就可以不一样,
如下:文件名为Demo001 ,而程序入口的那个名为Demo00100
两个名不一样,
但程序可以正常运行!
------------------萌新专业分割线----------------- ------------23
main不是关键字!!!
------------------萌新专业分割线----------------- ------------24
------------------萌新专业分割线----------------- ------------25
//a和c都是局部变量,但 输出语句中的c和d,没在public static void main里面,无法输出
------------------萌新专业分割线----------------- ------------26
常量
------------------萌新专业分割线----------------- ------------27
常量的定义
加个final即可
常量只有一次赋值的机会
这次机会:无论是 在变量的声明中赋值 还是 在声明之外赋值 都可,总之只有一次赋值的机会
------------------萌新专业分割线----------------- ------------28
------------------萌新专业分割线----------------- ------------29
------------------萌新专业分割线----------------- ------------30
------------------萌新专业分割线----------------- ------------31
------------------萌新专业分割线----------------- ------------32
------------------萌新专业分割线----------------- ------------33
------------------萌新专业分割线----------------- ------------34
------------------萌新专业分割线----------------- ------------35
------------------萌新专业分割线----------------- ------------36
------------------萌新专业分割线----------------- ------------37
字符型
------------------萌新专业分割线----------------- ------------38
------------------萌新专业分割线----------------- ------------39
两元运算符即两个数加加减减
一元运算符即一个数加加减减,一般为自加自减
------------------萌新专业分割线----------------- ------------40
------------------萌新专业分割线----------------- ------------41
短路逻辑运算
---------------------------分割线-------------------------------
---------------------------分割线-------------------------------
短路现象
------------------萌新专业分割线----------------- ------------42
扩展运算符
=>上图中,如果使用b2=b2+b1;会提示以下内容:
------------------萌新专业分割线----------------- ------------43
字符串的拼接
直接输出:
------------------萌新专业分割线----------------- ------------44
三目运算符
------------------萌新专业分割线----------------- ------------45
------------------萌新专业分割线----------------- ------------46
------------------萌新专业分割线----------------- ------------47
小括号保证优先级
------------------萌新专业分割线----------------- ------------48
数据类型转换(01)
-------------------------------------分割线-------------------------------------------
------------------萌新专业分割线----------------- ------------49
数据类型转换(02)
-------------------------------------分割线-------------------------------------------
错误分析:
原因:
强制类型转换只对离它最近的变量有效, 变量c虽然被char强转了,但是1还是int类型=>结果还是char与int的结合,所以不兼容
解决方法:
把结果一起括起来就行,这样就把结果给强转了.
-------------------------------------分割线-------------------------------------------
=>使用三目运算符!!!
------------------萌新专业分割线----------------- ------------50
Math.random随机生成
=>所以Math.random()是double类型,所以用double类型接收
=>所以如果想要其他类型的随机数据,还需要强制类型转换
------------------萌新专业分割线----------------- ------------51
随机生成题目
------------------萌新专业分割线----------------- ------------52
随机生成练习
---------------------------分割线--------------------------------
--------------------------------分割线----------------------------------
=>注意: 用红色框框起来的部位 可以是任意自己想要起的单词
------------------萌新专业分割线----------------- ------------53
Random随机生成
内容放到52了
------------------萌新专业分割线----------------- ------------54
键盘录入
------------------萌新专业分割线----------------- ------------55
键盘录入练习
------------------萌新专业分割线----------------- ------------56
键盘录入题目
------------------萌新专业分割线----------------- ------------57
键盘录入和三目运算符(练习)
------------------萌新专业分割线----------------- ------------58
流程控制语句(if选择)
------------------萌新专业分割线----------------- ------------59
if-else判断是否成年
------------------萌新专业分割线----------------- ------------60
if-else-if判断年龄段
------------------萌新专业分割线----------------- ------------61
选择语句流程图
------------------萌新专业分割线----------------- ------------62
------------------萌新专业分割线----------------- ------------63
------------------萌新专业分割线----------------- ------------64
switch选择
------------------萌新专业分割线----------------- ------------65
switch细节
------------------萌新专业分割线----------------- ------------66
------------------萌新专业分割线----------------- ------------67
------------------萌新专业分割线----------------- ------------68
------------------萌新专业分割线----------------- ------------69
打印1到10
------------------萌新专业分割线----------------- ------------70
打印1到100的奇数
------------------萌新专业分割线----------------- ------------71
打印100到200之间能被5或7整除的数字
------------------萌新专业分割线----------------- ------------72
public class Demo019{
public static void main(String[] args){
int number = 100;
int count = 0;
while (number<=200){
if(number%5==0 || number%7==0){
System.out.print(number + " ");
count++;
if(count%8==0){
System.out.println();
}
}
number++;
}
System.out.println("在100到200之间一共有"+count+"个整数被5或7整除");
}
------------------萌新专业分割线----------------- ------------73
------------------萌新专业分割线----------------- ------------74
for循环
------------------萌新专业分割线----------------- ------------75
------------------萌新专业分割线----------------- ------------76
------------------萌新专业分割线----------------- ------------77
------------------萌新专业分割线----------------- ------------78
两个case不能相同!!!
------------------萌新专业分割线----------------- ------------79
switch中的case标签不能重复
------------------萌新专业分割线----------------- ------------80
双层循环打印三角形
------------------萌新专业分割线----------------- ------------81
方法的介绍
=>哦!java中的方法应该就和c++里面的函数差不多
=>暂时这样认为,以后有更深刻的体会再来补充!!!
------------------萌新专业分割线----------------- ------------82
方法的规范和嵌套使用-----------------------------坚持自学java的第三天
------------------萌新专业分割线----------------- ------------83
方法的分类(根据是否有参&返回值进行分类)
代码的例子和84一起写在一起了
------------------萌新专业分割线----------------- ------------84
各种方法的调用
------------------萌新专业分割线----------------- ------------85
方法定义的分析
------------------萌新专业分割线----------------- ------------86
方法练习
------------------萌新专业分割线----------------- ------------87
方法练习
------------------萌新专业分割线----------------- ------------88
方法练习(求圆的周长和面积)
------------------萌新专业分割线----------------- ------------89
方法练习
------------------萌新专业分割线----------------- ------------90
判断整数正负数和0
------------------萌新专业分割线----------------- ------------91
方法参数的细节
------------------萌新专业分割线----------------- ------------92
方法返回值的细节
------------------萌新专业分割线----------------- ------------93
方法签名
说白了,java里面的方法签名就相当于c/c++里面的函数名
以上例子中,test1,test2,test3就是方法签名
------------------萌新专业分割线----------------- ------------94
方法重载
java里面的方法重载就相当于c/c++里面的函数重载
------------------萌新专业分割线----------------- ------------95
idea的说明
------------------萌新专业分割线----------------- ------------96
idea的使用
配置已完成,可以参考别的博主,这里不再详述.
------------------萌新专业分割线----------------- ------------97
包的概念
----------------------------------分割线---------------------------------------------
一个包下可以创建无数的类,并且,同一个包下的类,可以直接相互使用!
什么情况是同一个包???=>来一个例子:
如上图,HelloWorld和HelloWorld01在同一个包下,HelloWorld02自己一个包
com.shsxt.opp和com.shsxt.test=>是两个包
=>因为前缀com.shsxt都一样,后缀opp和test不一样,所以被分开了
即分成
com.shsxt
| |
opp test
------------------萌新专业分割线----------------- ------------98
方法的回顾
------------------萌新专业分割线----------------- ------------99
递归
依次输出1 2 3
=>递归再次深入理解:!!!=>递归在返回的过程中,遇到用红色圈圈起来的大括号就会结束这一层的"梦境"("梦境"引用于盗梦空间)
=>观看上图,遇到红色圈圈出的位置就会退出这一层"梦境"
------------------------------------分割线------------------------------------------
------------------萌新专业分割线----------------- ------------100
------------------萌新专业分割线----------------- ------------101
面向对象理解
java里面没有结构体这个东西,
但是有类,就是class这个东西===>所以暂时可以把类,对象这些内容类比于c/c++里面的结构体.=>这样理解只是最简单的理解.
做事情的那个人就是面向过程,安排的那个人就是面向对象
=>面向对象可以类比成一个老板,他自己虽然不会某一项技能,但数他可以花钱去请会这项技能的人来为他工作,他只负责安排就行了
-------------------------------------分割线-----------------------------------------
类与对象:
对于"类":
就相当于是 去找人才的 标准
对于"对象":
就相当于是 你招过来的那个 人才
------------------萌新专业分割线----------------- ------------102
面向对象三大特征
------------------萌新专业分割线----------------- ------------103
类和对象
现实中一般是 先有 对象(人才) , 后有 类(人才的标准) 的
=>在众多人才中挑选 出 公司所要的人才 =>这个人才就成了 公司招收人才的标准.
而在代码中则反过来,
代码中 先有类 ,后有 对象
------------------萌新专业分割线----------------- ------------104
类的定义
=>对于方法 ,我们前面学的是static void() { }
=>这里我们暂时先把static去掉就行了,后面会讲=>这里static加不加都可以!!!
----------------------------分割线-----------------------
------------------萌新专业分割线----------------- ------------105
对象的创建
------------------萌新专业分割线----------------- ------------106
对象的内存分析
string类型是引用类型
为了提高博客的质量和创作速度及效率
决定从这里开始,只分享代码,不再进行其他的描述
加油!!!
------------------萌新专业分割线----------------- ------------107
对象的内存分析
------------------萌新专业分割线----------------- ------------108
对象的创建和使用
------------------萌新专业分割线----------------- ------------109
练习题目
------------------萌新专业分割线----------------- ------------110
内存简析
------------------萌新专业分割线----------------- ------------111
练习题实现
------------------萌新专业分割线----------------- ------------112
内存分析
------------------萌新专业分割线----------------- ------------113
构造器介绍
------------------萌新专业分割线----------------- ------------114
构造器的特点
------------------萌新专业分割线----------------- ------------115
对象的穿件过程
------------------萌新专业分割线----------------- ------------116
三维空间点的距离
------------------萌新专业分割线----------------- ------------101
三维空间的点
------------------萌新专业分割线----------------- ------------102
内存分析
------------------萌新专业分割线----------------- -----------103
内存简析
------------------萌新专业分割线----------------- ------------104
对象的内存分析(01)
------------------萌新专业分割线----------------- ------------105
对象的内存分析(02)
------------------萌新专业分割线----------------- ------------106
对象的创建
------------------萌新专业分割线----------------- ------------107
对象的创建和使用
------------------萌新专业分割线----------------- ------------108
对象的创建过程
------------------萌新专业分割线----------------- ------------109
属性给默认值
------------------萌新专业分割线----------------- ------------110
构造器介绍
------------------萌新专业分割线----------------- ------------111
构造器特点
------------------萌新专业分割线----------------- ------------112
类和对象
------------------萌新专业分割线----------------- ------------113
类的定义
------------------萌新专业分割线-----------------
java需要注意的问题合集:
1.java里只有一个主类,这个主类里包含有一个mian(主)函数,然后还可以在这个主类外边再添加其他的类=>即公共类.
2.java的纠错功能感觉异常的强大(相当于c和c++),只需要把鼠标箭头放在画波浪线的位置就可以根据提示来进行纠错.
3.我们想要运行的java程序是jdk下的,jdk可以等同于ANSI,所以我们在保存文件时,
------------------萌新专业分割线-----------------
错误积累:
1.
遇到这种问题,只需要**另存为ANSI.**参考"java需要注意的问题合集:"里的第3条.
------------------萌新专业分割线-----------------
写在最后:
以上文章,如有那些写的不对或者不妥,欢迎大佬们指正!