【别光顾着收藏呀⭐据说点赞的都会收获好运欧☀️】
不常见(不要求):transient(修饰变量,使变量不被序列化),native(修饰方法,表示该方法是由本地语言(如C、C++)实现的)
较不常见:instanceof(用于判断一个对象是否为某个类的实例),package(用于定义类的包名),volatile(修饰变量,使多线程操作时从内存读取变量值,而不从线程本地缓存读取)
常见:implements(类继承某个接口用implements修饰),abstract(用来修饰类和方法,表明是抽象类或抽象方法),interface(用来定义接口)
注意&&和||的短路问题,如果&&左边为假则不会计算右边的表达式
当低级别的变量赋值给高级别的变量时,系统自动完成数据类型转换。
如int型赋值给long会被隐式转化为long。如char赋值给int会转化为整形数字。
注意下面需要强制类型转换的情况(高赋低,平级):
静态初始化:直接赋值。动态初始化:用new开辟空间。
注意下面这点:
定义二维数组要给出第一维的大小:
动态初始化方法(用new)
先说类,类的定义如下:
类的命名规范简单了解即可:
定义类中成员,第2、3点要理解:
重点学习构造方法,这对以后写代码很重要。
重点理解第1、2、5点:
理解下面这句话(没new分配空间前都是引用类型,因为不指向实际内存空间):
子类继承父类在同一包和不同包的情况(了解即可):
protected简单了解:
子类对象构造过程是常考考点:
抽象类定义:
抽象操作是只定义接口,不实现该接口,具体的功能实现由子类完成:
下面这页内容要重点掌握,非常爱考:
注意:抽象类不能用new运算符创建对象,只能用其子类创建对象,子类必须继承抽象类,也必须重写抽象类的内容。
接口相当于是定义了方法,然后其它类继承接口,提供具体的实现。
【据说点个赞Java会收获好成绩欧】
如果你正在迭代一个集合,而集合中的对象被修改了(例如,它的某个属性被改变了),那么当你在迭代过程中访问那个对象时,你会看到最新的状态,也就是说,输出的值会改变。
1、范型类与范型方法
2、列表接口List
千万要注意:LinkedList和ArrayList都是List的实现方式,都是【有序】的线性表,千万要注意是有序的,而且元素是可以重复的,甚至可以为空。
List
list.add(元素) 添加元素 list.size()获得列表的大小
LinkedList
3、集合接口Set
HashSet中元素的排列并不是按照元素的添加顺序,也不是元素的自然顺序,而是基于元素的hashCode值。TreeSet会对元素进行排序。
values是Collection
Set
4、映射接口Map
5、Object
6、String
7、StringBuffer
8、简单正则表达式
——\d 表示数字,[0-9]
——[ ] 中括号表示只有括号里的字符才能参与匹配
——\w 表示数字、大小写字母,下划线:即[0-9A-Z_a-z] 【如:"\\wank"可以指代_ank等
如:"\\w*ank"可以在ank前面加入任意多个字符,如:frank,areank】
——\s 表示[\t\n\r\f] //如:“\\s*ank”可以在ank前面加入任意多个空格【其中:\r是回车 \f是换页符 \t是制表符 \n是换行符】
—— *表示0次或多次 //如ta*nk,表示a可以出现0次或多次,taaaank可以,tnk可以
—— +表示1次或多次 //如ta+nk,表示a可以出现1次或多次,taaaank可以,tnk不可以
—— ?表示0次或1次
——{n}表示刚好出现n次 //如"ta{3}+nk",当a出现3次时可以,如taaank
——{n,m}表示出现n到m次 //如"ta{3,5}+nk",当a出现3次时可以,如taaaank
——^表示否,用在方括号内,表示不想匹配的字符。【如:[^x]表示第一个字符不能是x,如:"[^tf]ank"表示第1个字符不能是t或f,tank不行,fank不行,wank可以】
——[a-z]字符范围
—— 英文.符号表示,匹配单个任意字符 //如t.o表示匹配注入teo,too的字符
—— |竖线表示或
——$匹配输入字符串的结束位置
——\\是转义字符
all = all.replaceAll("\\.", " ");
all = all.replaceAll("\\_", " ");
all = all.replaceAll("\\-", " ");
all = all.replaceAll("\\,", " ");
all = all.replaceAll("\\/", " ");
all = all.replaceAll("\\(", " ");
all = all.replaceAll("\\)", " ");
——"1[38]\\d{9}"; //表示以13或18开头【方括号表示只有方括号里的指定字符才能参与匹配,且只能匹配单个字符 // \d表示[0~9],\d{9}表示有9位0~9的数,加上前面2位,共计11位】
GridPane:网格化布局
StackPane:层次结构布局。
TitlePane是一个可以关闭打开的有标题的Pane
HBox水平布局。VBox垂直布局。
Pane固定位置布局。
FlowPane:流式布局。
BorderPane:顶部、底部、上侧、下侧、左侧、右侧、中心布局。
考点:熟悉线程的生命周期,能写多线程的程序,能写程序实现线程同步程序,能写生产者消费者程序,Runnable,Thread,线程池。
1、Thread子类run()方法的重写
2、使用Runnable接口
java.net包中定义了Socket和ServerSocket两个类,分别用来实现双向连接client和server端。
将数据打包成数据报:DatagramPacket类
发送和接收数据报:DatagramSocket类
答:Lambda表达式是Java中表达匿名函数的方法,可以使得编程中的代码更简洁。(可以将Lambda表达式理解为一种没有函数名的函数)
(参数列表) -> {语句;}
参数列表:它定义了函数的输入参数。这些参数的数量和类型可以根据需要定义,如果没有参数,可以写成()。
箭头符号:->是Lambda表达式的核心,它将参数列表和函数体分隔开。
函数体:它定义了Lambda表达式要执行的操作。函数体可以是一个表达式,也可以是一组语句。
样卷:
1、A 2、A 3、B 4、D 5、D 6、A 7、D
8、D 9、D 10、B
1、x 2、x 3、x 4、x 5、x 6、x 7、x 8、y 9、y 10、x
1、接口只有常量或方法的定义,而没有具体的实现,而类不仅有定义也有具体的实现。
2、
3、try catch
4、
5、GridPane网格布局,将子节点按网格形式防止
BorderPane边界布局,将子节点放置在上、下、左、右和中间五个区域。
HBox水平布局,将子节点按水平方向依次排列
1、继承、多态、封装
2、
3、DatagramSocket
4、super
5、import
6、const
7、
8、7
9、Thread Runnable
10、CBA 11、1258
13、
static public ArrayListremoveDuplicate(ArrayList collection) { Set b = new TreeSet<>(); for (String m : collection) { b.add(m); } ArrayList l = new ArrayList<>(); for(String m : b) { l.add(m); } return l; }
12、
public static void main(String args[]) { System.out.println(f(1.1,2.5)); System.out.println(f(9.9,9.9)); System.out.println(f(7.8,3.9)); } public static> int f(T a,T b) { return a.compareTo(b); }