1.Java基础知识
Java基础知识包括:Java基础语法、面向对象、集合、IO、线程与并发、异常、网络编程
Hudie.
✨Never stop !To be the person you want to be!
展开
-
Java面向对象复习总结篇
点击标题会自动跳转相应章节~~(1)private权限修饰符:用于将成员变量和成员方法私有化,私有是针对类而不是针对对象,也就是说,同一个类的不同对象之间,可以互相访问别的对象的私有化成员。(2)this代表所在类的对象引用:方法被哪个对象调用,this就代表那个对象。使用this的情况:局部变量和 成员变量重名,此时this.变量名代表的是所在类的对象的引用。(3)方法重载:...原创 2019-08-05 09:27:02 · 862 阅读 · 0 评论 -
Java中自动类型转换溢出问题引发的探究
由书上一道int→char的强制类型转换题目引发的一系列思考,有时候回头再仔细看看,也会收获很多,正所谓温故而知新。原创 2020-10-03 11:45:44 · 1268 阅读 · 12 评论 -
第四周编程题(循环控制,for循环,break语句-素数和,念整数)
1素数和(5分)题目内容:我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推。现在,给定两个整数n和m,0<n<=m<=200,你的程序要计算第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。注意,是第n个素数到第m个素数之间的所有的素数,并不是n和m之间的所有的素数。输入格式:两个整数,第一个表示n,第二个表示m。输出格式:一个...原创 2019-05-13 09:37:53 · 609 阅读 · 0 评论 -
第三周编程题(循环,while,do-while,奇偶个数,数字特征值)
1奇偶个数(5分)题目内容:你的程序要读入一系列正整数数据,输入-1表示输入结束,-1本身不是输入的数据。程序输出读到的数据中的奇数和偶数的个数。输入格式:一系列正整数,整数的范围是(0,100000)。如果输入-1则表示输入结束。输出格式:两个整数,第一个整数表示读入数据中的奇数的个数,第二个整数表示读入数据中的偶数的个数。两个整数之间以空格分隔。输入样例:9 3 4 2 5 7...原创 2019-05-13 09:37:46 · 1065 阅读 · 0 评论 -
JAVA个人学习笔记
(1)导包,智能感应import java.util.Scanner;(2)输出语句: System.out.println("Hello JAVA");???做in这个东西,目前不知道是啥 Scanner in =new Scanner(System.in);//做in这个东西,目前不知道是啥(3)读用户的输入(应声虫): System.out.println(in....原创 2019-05-13 09:39:50 · 523 阅读 · 0 评论 -
【java相关知识02】
一、运算符练习1.1写出输出的结果://考查运算符的优先级class Demo{ public static void main(String[] args){ int x=0,y=1; if(++x==y-- & x++==1||--y==0) System.out.println("x="+x+",y="+y); else System.out.pr...原创 2019-05-18 00:06:40 · 1091 阅读 · 0 评论 -
【java相关知识01】
1.1JVM、JRE和JDK的区别?答:JDK>JRE>JVM.JVM(java虚拟机):即解析器,解决java跨平台问题(实质是跨虚拟机).JRE(java运行环境):包含JVM和java基础类库.JDK(java开发工具包):包含JRE和java程序调试和分析的工具. 1.2环境变量path和classpath的作用是什么?答:Path:指定命令搜索路径.C...原创 2019-05-17 23:21:14 · 522 阅读 · 0 评论 -
第五周编程题(数组-多项式加法,要考虑的地方也太太太多了吧.......)
1多项式加法(5分)题目内容:一个多项式可以表达为x的各次幂与系数乘积的和,比如:2x6+3x5+12x3+6x+20现在,你的程序要读入两个多项式,然后输出这两个多项式的和,也就是把对应的幂上的系数相加然后输出。程序要处理的幂最大为100。输入格式:总共要输入两个多项式,每个多项式的输入格式如下:每行输入两个数字,第一个表示幂次,第二个表示该幂次的系数,所有的系数都是整数。第一行...原创 2019-05-13 09:38:01 · 765 阅读 · 4 评论 -
第二周编程题(判断,if,else与switch训练-时间转换,信号报告)
1时间换算(5分)题目内容:UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8。现在,你的程序要读入一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。如1124表示11点24分,而905表示9点5分,36表示0点36分,7表示0点7分。有效的输入范围...原创 2019-05-13 09:37:41 · 710 阅读 · 1 评论 -
第一周编程题(计算,温度转换问题)
温度转换(5分)题目内容:写一个将华氏温度转换成摄氏温度的程序,转换的公式是:°F = (9/5)*°C + 32其中C表示摄氏温度,F表示华氏温度。程序的输入是一个整数,表示华氏温度。输出对应的摄氏温度,也是一个整数。提示,为了把计算结果的浮点数转换成整数,需要使用下面的表达式:(int)x;其中x是要转换的那个浮点数。注意:除了题目要求的输出,不能输出任何其他内容,比如输...原创 2019-05-13 09:37:33 · 2477 阅读 · 0 评论 -
JAVA第一个程序之"找零问题"
package hello;import java.util.Scanner;public class Hello { private static Scanner in; public static void main(String[] args) { in = new Scanner(System.in); int price=0; int amount=0; ...原创 2019-03-25 08:54:40 · 1221 阅读 · 0 评论 -
处理流|缓冲流(Buffered)
文章目录缓冲流(字节型)实现非文本的复制缓冲流(字符型)实现文本的复制节点流与缓冲流总结缓冲流练习1缓冲流练习2缓冲流(字节型)实现非文本的复制Buffered能够提高读写速度的原因:内部提供了一个缓冲区。打开源码,可以发现其内部提供了一个大小为1024八倍的常量,相当于提供了一个8192大小的缓冲区。当读文件时,先把文件读进缓冲区中,当达到8192大小时一次性写出。相应的也有一个flu...原创 2020-03-21 12:17:53 · 1936 阅读 · 0 评论 -
节点流(文件流)|字符流和字节流
文章目录一、FileReader字符输入流一、FileReader字符输入流read():返回读入的一个字符,如果达到文件末尾,返回-1。异常的处理:为了保证流资源一定可以执行关闭操作。需要用try-catch-finally处理。读入的文件一定要存在,否则会报FileNotFoundException();使用FileReader字符输入流读取文档中的数据(一次读取一个字节):...原创 2020-03-21 12:17:01 · 1802 阅读 · 1 评论 -
流的分类|IO流的体系结构
文章目录一、Java IO原理二、流的分类一、Java IO原理I/O是Input/Output的缩写,I/O是非常实用的技术,用于处理设备之间的数据传输。如读/写文件,网络通信等。Java程序中,对于数据的输入/输出操作以"流(stream)"的方式进行。java.io包下提供了各种"流"类和接口,用以获取不同种类的数据,并通过标准的方法输入或输出数据。输入(inpu...原创 2020-03-21 12:16:27 · 2001 阅读 · 0 评论 -
Java中的File类详解
文章目录一、如何实例化一个File对象二、File类的几个常用方法1.获取方法2.重命名方法3.判断方法使用IO流可以将存储从内存转换为在磁盘上持久化。IO流,解决的是文件的传输问题。所有的输入输出,都是站在内存的角度去考虑。需要明确的几个知识点路径中的每级目录之间用一个路径分隔符隔开。路径分隔符和系统有关:windows和DOS系统默认使用""来表示UNIX和URL使...原创 2020-03-21 12:15:56 · 1721 阅读 · 0 评论 -
TCP网络通信(可靠协议)
一、Socket通信模型利用套接字(Socket)开发网络应用程序早已被广泛采用,以至于成为事实上的标准。通信的两端都要有Socket,是两台机器间通信的端点。网络通信其实就是Socket间的通信。Socket允许程序把网络连接当成一个流,数据在两个Socket间通过IO传输。一般主动发起通信的应用程序为客户端,等待通信请求的为服务端。二、模拟TCP协议下的网络通信客户端:p...原创 2019-08-29 14:54:45 · 652 阅读 · 0 评论 -
IP、域名和DNS的关系
java.lang.Object包下的InetAddress类表示互联网协议(IP)地址。原创 2019-08-29 14:54:10 · 10439 阅读 · 0 评论 -
网络编程概述
(1)计算机网络:地理位置不同的具有独立功能的多台计算机,通过通信线路连接,在①网络操作系统②网络管理软件③网络通信协议,三者的管理和协调下,实现资源共享和信息传递的计算机系统。(2)计算机网络功能:资源共享实现数据信息的快速传递提高可靠性提供负载均衡与分布式处理能力集中管理以及综合信息服务(3)网络通信协议:对速率、传输代码、代码结构、传输控制步骤、出错控制等指定标准。...原创 2019-08-29 14:53:11 · 478 阅读 · 0 评论 -
UDP网络通信(不可靠协议)
一、UDP简介UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据报的方法。特点:无连接、不可靠、快速传输。类别:传输层协议。用途:发送IP数据包。二、模拟UDP网络通信接收端:package Nerwork_programming网络编程;import java.io.IOException;import java.net.DatagramPacket;...原创 2019-08-29 14:54:37 · 1509 阅读 · 1 评论 -
Java成员变量,局部变量,静态变量,三者的区别
_成员变量局部变量静态变量定义位置类中,方法外方法中或方法的形参中类中,方法外初始化值有默认初始值无,先定义赋值后才能用有默认初始化值调用方式对象调用\对象调用存储位置堆栈方法区生命周期与对象共存亡与方法共存亡与类共存亡别名实例变量\类变量...原创 2019-12-04 21:03:37 · 473 阅读 · 0 评论 -
JavaIO流的使用(笔记详解)
一、IO流概述及体系IO流用来处理设备之间的数据传输。Java对数据的操作是通过流(系统资源)的方式。Java用于操作流的对象都在Java.io包中。流按照操作数据分为两种:字节流,字符流。流按照流向分为:输入流,输出流。二、Java字符流的使用关于缓冲区:缓冲区,提高了对数据的读写效率。对应类:BufferedWriter和BufferedReader。缓冲区要结合流...原创 2019-10-22 23:44:13 · 656 阅读 · 0 评论 -
final关键字
final关键字:final可以修饰类,方法,变量。final修饰的类不可以被继承。final修饰的方法不可以被覆盖。final修饰的变量是一个常量,只能被赋值一次。内部类只能访问被final修饰的局部变量。 测试:(1).final修饰的类不可以被继承。final class Fu{ }class Zi extends Fu{ }class FinalDem...原创 2019-05-14 17:30:48 · 484 阅读 · 0 评论 -
IO流---使用字节流读写文件
如何读写文件?通过流来读写文件:流是指一连串流动的字符,是以先进先出方式发送信息的通道读入(read Input);写出(write Output);java中一个字符(Unicode2个字节),一个二进制字节(8位);JAVA流的分类:...原创 2019-06-10 23:36:30 · 2003 阅读 · 0 评论 -
线程池
(1)为什么使用线程池?线程缺乏统一管理,占用过多系统资源;缺乏更多功能,如定时执行、定期执行等;(2)使用线程池的好处?重用存在的线程,减少对象创建、消亡的开销;有效控制最大并发数,提高系统资源使用率;定时执行、定期执行;(3)线程池所在的包:java.util.concurrent顶级接口是Executor,真正的线程池接口是ExecutorServicejava....原创 2019-06-03 23:15:38 · 530 阅读 · 1 评论 -
Java中File类的使用(列出一个文件夹下的所有文件以及目录Demo)
什么是文件?文件可认为是相关记录或放在一起的数据的集合。文件存储在哪里?磁盘、光驱、移动硬盘。JAVA程序如何访问文件属性?JAVA_API:java.io.File类file类相关操作1.exists();//boolean2.isFile();//boolean3.ifDirectory();//boolean4.getPath();//String相对路径...原创 2019-10-21 23:21:46 · 9114 阅读 · 0 评论 -
集合框架二(HasMap接口,iterator,泛型集合)
Map接口常用方法:Map c = new HashMap();//声明c.put(Object key,Object val)//以"键-值"方式存储c.get(Object key);//通过key获得valc.size();//返回元素个数c.containsKey(Object key);//判断键是否存在c.containsValue(Object val);//判断值是否...原创 2019-06-08 20:48:14 · 546 阅读 · 0 评论 -
反射练习
只要知道类的权限名(包名+类名),参数,方法名就可以通过反射创建对象,为对象属性赋值,调用该对象相关方法。package Reflection反射;import java.lang.reflect.Constructor;import java.lang.reflect.Method;import org.junit.Test;/*只要知道类的权限名(包名+类名) * 参数,方法...原创 2019-08-29 14:55:12 · 599 阅读 · 0 评论 -
正则表达式(匹配、切割、替换、获取)
(1)正则表达式简介作用:用于专门操作字符串。特点:用一些特定的符号来表示一些代码操作,简化书写。好处:可以简化对字符串的复杂操作。弊端:符号定义越多,正则越长,阅读性越差。正则表达式:定义了字符串的模式,是符合一定规则的表达式。 正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。(2)具体操作功能1.匹配 :String matches 方法1.字符类1...原创 2019-08-29 14:55:29 · 8774 阅读 · 0 评论 -
正则表达式练习
1.将"我我…我我…我要…要…要要…学学学…学学…编编编…编程"去重,打印出"我要学编程"。2.将ip地址进行地址段顺序进行排序。3.对邮件地址进行校验。package Regular正则表达式;import java.util.TreeSet;import org.junit.Test;public class Regular_正则表达式练习 { @Test // 1.去重...原创 2019-08-29 14:55:35 · 780 阅读 · 0 评论 -
反射(Class类、Constructor对象、Field对象、Method对象)
一、Class类是描述.class类的类。抽取.class文件中的共性的东西,再抽取后封装成对象。public class Class{ 对成员变量进行描述 Filed 对构造函数进行描述 Constructor 对方法进行描述 Method 对注解进行描述 Annotation}二、在Class类中调用class对象:☆jvm通过类加载器将计算机中Person...原创 2019-08-29 14:55:04 · 758 阅读 · 0 评论 -
Arrays工具类的使用(binarrySearch的用法)
二分查找应用于已排好序的数组,手写二分查找代码如下:class ArrDemo{ public static void main(String[] args){ int[] arr1 = {1,4,13,17,21,33,46,76,99,}; System.out.println(halfSearch(arr1,21)); System.out.println(getI...原创 2019-05-17 10:49:31 · 1103 阅读 · 0 评论 -
Arrays类的快排sort
手写选择排序和冒泡排序:class SelectSort{ public static void main(String[] args){ int[] arr1 = {83,3,45,12,34,19,77,66}; int[] arr2 = {4,34,77,56,65,78,87,98,100}; selectSort(arr1);//选择排序 printArr(arr1)...原创 2019-05-17 12:23:12 · 725 阅读 · 0 评论 -
Java的方法参数问题
一、关于Java的方法参数传递问题:一个方法可以修改传递引用所对应的变量值,而不能修改传递值调用所对应的变量值。二、Java的方法参数使用情况:一个方法不能修改一个基本数据类型的参数(即数值型或布尔型)一个方法可以改变一个对象参数的状态package 方法参数;public class Test { public static void main(String[] args) ...原创 2019-09-20 13:59:16 · 754 阅读 · 0 评论 -
多线程并发操作之经典案例(生产者和消费者)
生产者和消费者问题实际案例:两个在写多线程程序时容易犯的错误当多个线程共同去操作同一份数据时,注意使用线程的同步保证信息的同步性和安全性。遇到生产者和消费者这类问题,如果希望生产者生产之后立刻有消费者拿走,不出现重复生产与重复消费的现象,就需要使用Object的两个方法(唤醒和等待).当生产者生产玩一个信息后立刻有消费者读取此信息,需要有一个标志位。package june_2...原创 2019-06-03 00:00:31 · 1126 阅读 · 0 评论 -
死锁
死锁定义两个线程都在等待对方先完成,造成程序的停滞。死锁条件两个或两个以上的线程在活动;某个线程拿到一个锁以后,还想拿第二个锁,造成锁的嵌套;如何避免死锁当前线程先释放自己的锁,它们之间就能解锁了。尽量减少同步方法和同步代码块的嵌套,同步的操作越多,越容易产生死锁。死锁举例:此时,两个小朋友陷入了僵持状态,就好比有两个线程,它们各自有自己的锁,又都想拿到对方的锁,但...原创 2019-06-02 22:14:03 · 528 阅读 · 0 评论 -
匿名内部类
(1)匿名内部类格式:格式: new 父类或者接口(){ 重写接口或者父类中的方法 (一般不超过三个) };(2)使用匿名内部类的情况:需要有接口或者父类,并且,接口或者父类中的方法不超过三个,过多时候就不匿名了。匿名内部类可以当做参数传递。(3)匿名内部类测试:interface USB{ void open(); void close();}class ...原创 2019-05-15 19:01:34 · 647 阅读 · 0 评论 -
内部类
(1)内部类定义:将一个类定义在另一个类里面,里面那个类就称为内部类。(2)分类:成员内部类。局部内部类。(3)匿名内部类:内部类的简写形式。(4)内部类在成员位置:class Outer{ void show(){ } //内部类在成员位置 class Inner{ void fun(){ System.out.println("fun 内部类");...原创 2019-05-15 18:27:37 · 926 阅读 · 6 评论 -
接口中多态的应用
下面的代码意思是,定义了一个USB接口,这个接口实现了Mouse和Key两个类。在PC类的构造方法中调用这个接口实现的对象,如果接口实现了哪个类,就将这个接口实现的对象向下转型,进入到那个类中,执行那个类中的操作。class PC{ void use(USB u){//USB u = new Mouse();/USB u = new Key(); u.open(); if(u inst...原创 2019-05-15 17:15:43 · 633 阅读 · 0 评论 -
继承关系下的多态应用
下面的代码定义了一个Person类,在该类中给出同名不同参的feed方法。假如参数为类类型,并且数量非常的大,那么这样的代码就显得臃肿,多态应运而生。class Person{ void feed(Cat c){ c.eat(); } void feed(Dog d){ d.eat(); } //.....}class Cat{ public void eat(){...原创 2019-05-15 09:47:52 · 530 阅读 · 0 评论 -
多态
(1)多态在java中的表现形式:Fu f = new Zi();父类(或者接口)中的引用指向子类对象。(2)好处:提高了程序的扩展性和后期可维护性。(3)前提:需要存在继承或者实现关系。要有覆盖操作。(4)下面的代码演示了一般子类继承抽象父类后被调用的过程,通过这个代码引出多态。abstract class Animal{ abstract void eat();}c...原创 2019-05-15 08:50:47 · 407 阅读 · 0 评论