JAVA基础
以个人学习经历为主,同时记录自己的学习笔记
= * shmily
这个作者很懒,什么都没留下…
展开
-
注解和反射学习笔记与代码
什么是注解注解:Annotation注释:comment注解不是程序本身,但是可以对程序做出解释,这一点同comment作用类似,还可以被其他程序(如编译器)读取。可以附加在package,class,file,method上使用,相当于给他们添加了辅助信息,我们可以通过反射机制编程实现对这些元素数据的访问内置注解 @Override:定义在Java.lang.Override中,这个注释只适用于修饰方法,表示一个方法声明打算重写超类中的另一个方法声明。 @Deprecated:定义在Java原创 2020-09-09 17:36:59 · 154 阅读 · 1 评论 -
网络编程
IP地址 IP地址:inet Address 唯一定位一台网络上的计算机 127.0.0.1:本机local hostipv IP地址的分类:ipv4:127.2.2.1,四个字节组成,0-255,大概有42亿;30亿在北美,亚洲4亿。IPv6: fe80::588c:5b23:d5c5:eed6%13,128位。 公网(互联网)——私网(局域网)public class testInetAddress { public static void ma原创 2020-07-13 22:47:35 · 355 阅读 · 0 评论 -
IO流
File类添加方法:1.创建普通文本文档:boolean flag= file1.createNewFile();2.创建文件夹:boolean flag2=file2.mkdir();3.同时创建多个文件夹:boolean flag3=file3.mkdirs();public class fileDemo1 { public static void main(String...原创 2020-07-01 20:24:42 · 193 阅读 · 1 评论 -
线程同步机制
概述线程同步:在现实生活中,我们经常会遇到“同一个资源,多个人都想使用,例如:食堂排队打饭处理多线程问题时,多个线程访问同一个对象,并且某些线程还想修改这个对象,这时候我们就需要线程同步。线程同步其实就是一种等等待机制,多个需要同时访问此对象的线程进入到这个对象的等待池形成队列,等待前面线程使用完毕,下一个线程在使用形成条件:队列+锁由于同一进程的多个线程共享同一块存储空间,在带来方便的同时,也带来了访问冲突的问题,为了保证数据在方法中被访问时的正确性,在访问时加入锁机制synch...原创 2020-06-13 10:30:32 · 339 阅读 · 1 评论 -
线程的五大状态以及lambda推导
实现Callable接口实现callable接口,需要返回值类型重写call方法,需要抛出异常创建目标对象创建执行服务: ExecutorService ser=Executors.newFixedThreadPool(1);提交执行: Future result1 = ser.submit(t1);获取结果: boolean r1 = result1 .get()关闭服务: se...原创 2020-05-26 16:42:41 · 181 阅读 · 0 评论 -
mysql环境配置
直接下载安装zip版本的:地址:MySQL下载地址下载后解压文件夹,添加一个mysql的配置文件my.ini(其中data文件是后期生成的,此时不用添加)环境配置:在我的电脑里的属性——高级系统设置——环境变量——系统变量中的path中新建一个输入自己的bin文档的路径,例如:E:\environment\mysql-8.0.20-winx64\mysql-8.0.20-winx64\bin,然后一路确定就可以了。在配置文件ini中添加:[mysqld]#设置3306端口po原创 2020-05-11 14:28:08 · 661 阅读 · 0 评论 -
线程创建的三种方法
继承Thread类//1.继承Thread类 2.重写run()方法 3.调用start()方法开启线程public class testThread1 extends Thread{ @Override public void run() { //run 方法流程体 for (int i = 0; i < 10; i++) { ...原创 2020-04-25 17:19:26 · 3619 阅读 · 0 评论 -
idea第一次创建动态web项目
首先idea要有jdk和Tomcat,可以去官网下载jdk和TomcatJDk官网Tomcat官网步骤如下:点击左上角的File–new–Project选择Java Enterprise,在Application Sever中找到自己的Tomcat,同时勾选住Web Application,之后一路像平时创建新项目一样的流程在WEB-INT下创建classes和lib文...原创 2020-04-23 11:22:10 · 366 阅读 · 0 评论 -
数据类型拓展及面试题讲解
整数拓展: 进制 二进制0b 十进制 八进制0 十六进制0xint i=10; int i2=0b10; int i3=010; int i4=0x10; System.out.println(i); System.out.println(i2); System.out.println(i3); System.out.println(...原创 2020-02-12 20:25:22 · 127 阅读 · 0 评论 -
认识多线程
认识多线程多任务:类似于生活中的一心二用,同时吃饭玩手机,或者边听歌边写作业多线程:类似于生活中的马路,为了提高使用的效率,多加了几条车道普通方法调用和多线程Process和Thread程序是指令和数据的有序集合,本身没有任何运行的含义,是一个静态的概念进程则是执行程序的一次执行过程,他是一个动态的概念。是系统资源分配的单位通常在一个进程中可以包含若干个线程,当然一个进程中至...原创 2020-04-19 17:13:13 · 835 阅读 · 1 评论 -
SnakeGame步骤
首先设置一个窗体,游戏的面板public class startGame { public static void main(String[] args) { JFrame frame = new JFrame(); frame.add(new GamePanel()); frame.setDefaultCloseO...原创 2020-04-14 13:45:53 · 609 阅读 · 0 评论 -
JFrame的相关应用
JFrame举例:public class JFrameDemo2 { public static void main(String[] args) { new MyJFrame().init(); }}class MyJFrame extends JFrame{ public void init(){ this.setBounds(...原创 2020-04-12 12:25:23 · 250 阅读 · 0 评论 -
鼠标,窗口,键盘监听
画笔举例:class MyPaint extends Frame{ public void loadFrame(){ setBounds(200,200,600,500); setVisible(true); } //画笔 @Override public void paint(Graphics g) { ...原创 2020-04-08 19:41:25 · 259 阅读 · 0 评论 -
监听事件以及简易计算器
事件监听当某一个按钮或者文本框按下去的时候,会执行的动作举例: public static void main(String[] args) { Frame frame = new Frame(); Button button = new Button("button"); MyActionListener myActionListener...原创 2020-04-06 21:42:54 · 657 阅读 · 0 评论 -
Frame,Panel和三种布局管理器
窗体Frame举例:单个窗体 //frame窗体存在在内存中,看不见 Frame frame = new Frame("我的JAVA窗体"); //设置窗体的可见性 frame.setVisible(true); //设置窗体的尺寸 frame.setSize(400,400); //设置窗...原创 2020-04-05 13:48:55 · 1482 阅读 · 0 评论 -
方法可变参数和递归
方法方法:JAVA方法是语句的集合,他们在一起执行一个功能1.方法是解决一类问题的步骤的有序组合2.方法包含于类或对象中3.方法在程序中被创建,在其他地方被引用设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保持方法的原子性,就是一个方法只能完成一个功能,利于后期的扩展。//main方法 public static void ...原创 2020-02-24 14:18:18 · 91 阅读 · 0 评论 -
增强型For循环,GoTo关键字
For循环练习题:分别计算1-100内奇数和偶数的和 public static void main(String[] args) { int oddSum=0; int evenSum=0; for (int i = 0; i <=100; i++) { if (i%2!=0){ ...原创 2020-02-19 20:20:32 · 157 阅读 · 0 评论 -
If,While,For流程控制
顺序结构IF选择结构IF单选择结构 public static void main(String[] args) { Scanner scanner=new Scanner(System.in); System.out.println("请输入内容:"); String s = scanner.nextLine(); //e...原创 2020-02-18 16:17:03 · 118 阅读 · 0 评论 -
逻辑运算符,三元运算符
简单运算符自增自减运算符 public static void main(String[] args) { long a=123123123123L; int b=123; short c=10; byte d=8; System.out.println(a+b+c+d);//long System.out.println(b+...原创 2020-02-15 17:19:10 · 156 阅读 · 0 评论 -
Exception,Error,捕获和抛出异常
什么是异常异常指程序运行中出现的不期而至的各种状况,如:文件找不到,网络连接失败,非法参数等异常发生在程序运行期间,他影响了正常的程序执行流程。举例://无限循环的代码,在写代码时不会报错,在编译的时候会报错public static void main(String[] args) { new demo1().a(); } public void a()...原创 2020-04-04 11:16:02 · 1172 阅读 · 0 评论 -
面向对象相关知识总结
封装1.该露的露,该藏得藏2.我们程序设计要追求“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用封装(数据的隐藏):通常,应禁止直接访问有一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏。 属性私有:get/set...原创 2020-03-23 21:38:31 · 200 阅读 · 0 评论 -
继承,封装,多态和值传递引用传递
面向过程思想(线性):1. 步骤清晰简单,第一步做什么,第二步做什么…2. 面对过程适合处理一些较为简单的问题面向对象思想:1. 物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索。2. 面向对象适合处理复杂的问题,适合处理需要多人协作的问题。对于描述复杂的事物,是为了从宏观上把握,从整体上合理分析,...原创 2020-03-13 13:49:24 · 145 阅读 · 0 评论 -
下标,数组,Array类和冒泡排序
数组的定义什么是数组:数组是相同类型数据的有序组合。数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而来。其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问他们。数组的声明和创建//变量类型 变量名称 标量的值int [ ] numbers; //首选的方法int numbers1[ ]; //效果相同,但不是首选的方法JAVA语言使用new...原创 2020-03-06 13:28:13 · 250 阅读 · 0 评论