前言
起因
有很多小伙伴想学习程序,觉得写代码,做到了别人做不到的
事情,走在了人群的上流,是一件很酷的事情,这里我想说的是:
程序创造人生,创造未来。我为什么喜欢写代码是因为我喜欢那种
创造的感觉,创造是一个从无到有的过程。
个人理解
我们学习的程序基本第一个都是hello,word,有些小伙伴调侃,
本人精通多种语言hello,word,当你创造出第一个程序,打印出第
一句hello,word,那么便是一个程序人生的开始。
说到开始,其实我的编程语言学习之路很坎坷,我其实最初学习
的并不是Java语言,而是c语言,当时学习觉得好难呀,学不会,来来
回回放弃了好多次,最后学习了Java,开启软件开发后端之路,Java
在我学的那些语言中还是比较好学的,个人理解。
第一个语言
我学习Java软件开发是从最基础的学习的,从网上找资料,买书
本,白嫖一些电子书,也许有人会问要是遇到问题怎么办,我遇到问
题都是通过一些学习网站,比如:阿里云、CSDN、稀土掘金、极客时
间以及InfoQ写作社区等等。这些网站都是比较出名的,还可以请教
一些大佬,一般都会为你讲解的。
我学习Java的顺序是:Java历史、编译原理、环境搭建、基本数
据类型、Java常量与变量、类型转化、运算符号、语法结构以及一些
关键字、方法的调用、数组的使用、面向对象、构造方法、方法设计
方法重载、继承、封装、修饰符、类与类的关系、集合、IO流、线程
注解等等。在编程之路上这些基础知识是必不可少的。
下面我分享以下我对一些个别知识点的结构分析与理解。
Swing初识
知识梳理
1.语法结构
数据类型 变量常量 流程控制 数组使用
2.面向对象--思想
类和对象 类中成员
类和类之间的关系 设计模式
类中特征 权限 特征 抽象类 接口 多态
3.Java工具类
包装类 日期 数学
字符串 集合相关 异常
4.I/O
文件 文件流 递归
5.线程相关
线程 进程 程序 线程几种不同状态 如何切换
线程安全问题 锁
6.反射注解
Class Field Method Constructor Package
@interface 自定义注解 元注解 通过反射解析注解
7.网络相关
考试系统流程分析
1.登录功能 用户名和密码存在哪里? 文件
2.考试功能 考试题目和答案存在哪? 文件
3.展示功能 GUI Graphical User Interface图形用户接口
GUI
Java集合 String
I/O
文件
C------->桌面应用程序
C/S----> Client Server 客户端/服务器 QQ
B/S----> Browser Server 浏览器/服务器 淘宝
GUI
Graphical User Interface
图形用户接口
就是采用图形的方式,进行操作页面的展示
AWT (Abstract Window Toolkit)
Swing 摆动,悬挂的意思
AWT Swing
窗体 Frame JFrame
面板 Panel JPanel
组件 Button JButton
Label JLabel
TextField JTextField
JPasswordField
JCheckBox复选框
JRadioButton单选按钮
JMenuBar JMenu JMenuItem
TextArea JTextArea文本域
*事件 ActionListener 动作/响应事件
KeyListener 键盘事件
MouseListener 鼠标事件
注解分析
注解
Annotation(注释 注解)
注释
单行注释 //
多行注释 /* */
文档注释 /** */
注解
1.注解的写法
@XXX [(一些信息)]
2.注解放置在哪里
类的上面 属性上面 方法上面 构造方法上面 参数前面
3.注解的作用
1.用来充当注释的作用(仅仅是一个文字的说明) @Deprecated
2.用来做代码的检测(验证) @Override
*3.可以携带一些信息(内容) 文件.properties .xml 注解
4.Java中有一些人家写好的注解供我们使用
@Deprecated 用来说明方法是废弃的
@Override 用来做代码检测 检测此方法是否是一个重写
@SuppressWarnings(信息) String[] {""}
如果数组内的元素只有一个长度 可以省略{}
unused 变量定义后未被使用
serial 类实现了序列化接口 不添加序列化ID号
rawtypes 集合没有定义泛型
deprecation 方法以废弃
*unchecked 出现了泛型的问题 可以不检测
all 包含了以上所有(不推荐)
5.注解中可以携带信息 可以不携带
信息不能随意写 信息的类型只能是如下的类型
1.基本数据类型
2.String类型
3.枚举类型enum
4.注解类型@
5.数组类型[] 数组的内部需要是如上的四种类型
6.如何自己描述一个注解类型
1.通过@interface 定义一个新的注解类型
2.发现写法与接口非常相似(可以利用接口的特点来记忆注解)
可以描述public static final的属性 比较少见
可以描述public abstract的方法 方法要求返回值必须有 返回值类型是如上那些
3.我们自己定义的注解如果想要拿来使用
光定义还不够 还需要做很多细致的说明(需要利用Java提供好的注解来说明)
元注解(也是注解 不是拿来使用的 是用来说明注解)
@Target 描述当前的这个注解可以放置在哪里写的
@Retention 描述当前的这个注解存在什么作用域中的
源代码文件--->编译--->字节码文件--->加载--->内存执行
SOURCE CLASS RUNTIME
@Inherited 描述当前这个注解是否能被子类对象继承
@Document 描述这个注解是否能被文档所记录
4.自己使用自己描述的注解
问题1. 在注解里面描述了一个方法 方法没有参数 方法是有返回值String[]
使用注解的时候 让我们传递参数
理解为 注解的方法做事 将我们传递给他的参数 搬运走了 给了别人
问题2. 使用别人写好的注解不用写方法名 我们自己定义的方法必须写名字
如果我们自己定义的注解 只有一个方法 方法名字叫value
在使用的时候就可以省略方法名
如果传递的信息是一个数组 数组内只有一个元素 可以省略{}
如果方法是两个以上 每一个方法必须写名字
如何解析注解内携带的信息(反射机制)
注解应用场景
Properties类的使用
java.util
继承HashTable
使用方式像是map集合 value = getProperty(key)方法
读取的信息是文件
文件的后缀名.properties
文件里面key=value
1.注解写法
@XXXX (信息)
2.注解放置在哪里写
类 方法 属性 构造 变量 参数(前面)
3.Java中定义好的注解
@Deprecated 废弃的
@Override 检测方法是否是重写
@SuppressWarnings 去掉程序中的警告(尽量不要用 尽量通过编写代码去掉警告)
unused serial rawtypes deprecation unchecked all
4.如何自己定义注解
描述一个自己的类 @interface
类的上面通过元注解来描述
@Target
@Retention
@Inherited
想要携带一些信息 自定义注解类型 添加方法
方法要求必须有返回值 返回值类型 基本 String 枚举 注解 数组
方法的作用将我们传递的信息 搬走了 交给别人
5.注解的作用
充当注释 仅仅是一个文字说明
代码检测 @Override
*携带信息
6.如何访问到注解对象
如何获取里面的信息(需要反射机制)
7.注解在开发中应用的场景
- 以上多数是关于Java注解(初始+元注解+自定义)知识点分析。