偷懒了~~也不乐意一个个地补,就写在一起吧~~
一、课前分享/*------------------------------------------------------*/
早:
PCDN
关掉HCDN避免家庭宽带被白嫖
中:
二维数组
ArrayList和HashSet
面试就是销售自己的优点
我的分享:
1.从chatGPT引入主题VectorDataBase
2.VeterDataBase的主要作用:存储和处理向量型数据,其核心是相似度检索
3.以小狗为例,讲了什么是向量型数据-->在坐标轴上用不同的维度来描述数据特征。举了两个例子:(1)警察抓小偷和猫抓老鼠的向量是很相似的。(2)Queen = King - Man + Woman;
4.它的好处:相似度检索,在推荐算法方面有很好的应用前景,例如以图搜图,推荐视频等等...
5.它的坏处:维度太多,数据量就很大,内存开销大
6.解决办法:聚类算法,小世界导航等等算法(我也不懂QAQ)
二、上课内容/*------------------------------------------------------*/
上午:
二维数组的创建和遍历,ArrayList和HashSet容器
下午:
普通for和增强for的四种组合
Arrays工具类的一些常用方法:toStirng,equals,deepToString,deepEquals,copyOf...
static int[] copyOf(int[] original, int newLength) 复制指定的数组,用零截断或填充(如有必要),以便副本具有指定的长度。
original : 原数组
newLength : 新数组长度
newLength = original.length 拷贝
newLength < original.length 截取
newLength > original.length 填充
上午:
内部类
//调用的是局部变量 inner方法中的变量i=3
sout(i);
//调用的是内部类Inner作用的变量i=2
sout(this.i)
//调用的外部类中的变量i
sout(Outer.this.i)--------这个Outer是在创建Inner 时一起创建的,这样写就不用创建新的Outer 对象。
静态内部类 : static修饰成员内部类
静态内部类中定义成员内容|静态内容
在静态内部类的方法中,可以直接使用所在外部类的静态内容,需要通过外部类对象访问外部类的成员内容,包括私有
在所在外部类中,可以直接通过静态内部类的类名调用其静态内容,可以通过静态内部的对象访问其成员内容
在其他类中,可以通过外部类类名.静态内部类类名.静态内容使用静态内部类的静态内容
在其他类中,可以通过new 外部类类名.静态内部类类名()对象访问静态内部类中的成员内容
下午:
匿名内部类:
省略了内部类的类名,将内部类的类体的定义与对象的创建合二为一,既能够实现对成员(类体)正确使用调用,也能够简化代码
分析 : 适合使用匿名内部类简化的类型
1)类没有自己本身的意义 2)实现类|子类只在当前使用一次
语法 :
new 接口名|父类名 (){ //接口的实现类类体|抽象类的子类类体-->匿名内部类的类体
};
Lambda表达式--简化匿名内部类
格式
()->{}
语句体只有一句时{}可省略
()->语句
()参数类型可省略
(x,y) -> 语句
只有一个参数时()可省略
x->语句
只有一个语句且返回值为return时 return 可省略
x->x>=18;
三、代码练习/*------------------------------------------------------*/
静态内部类的练习
package youjixian01a;
/*
静态内部类 : static修饰成员内部类
静态内部类中定义成员内容|静态内容
在静态内部类的方法中,可以直接使用所在外部类的静态内容,需要通过外部类对象访问外部类的成员内容,包括私有
在所在外部类中,可以直接通过静态内部类的类名调用其静态内容,可以通过静态内部的对象访问其成员内容
在其他类中,可以通过外部类类名.静态内部类类名.静态内容使用静态内部类的静态内容
在其他类中,可以通过new 外部类类名.静态内部类类名()对象访问静态内部类中的成员内容
*/
public class test36 {
public static void main(String[] args) {
Outer o = new Outer();
System.out.println(Outer.Inner.b);
Outer.Inner a = new Outer.Inner();
System.out.println(a.b);
}
}
class Outer{
private static int c = 3;
private int d = 4;
static class Inner{
private int a = 1;
static int b = 2;
private void inner(){
System.out.println(c);
System.out.println(new Outer().d);
//System.out.println(Outer.this.d);静态方法中不能用this,因为静态方法可以由类名调用,这时并没有对象存在也就不能使用this
}
private static void in(){
System.out.println("静态内部类方法");
}
}
public void outer(){
System.out.println(Inner.b);
}
}
匿名内部类和Lambda表达式的写法
package youjixian01a;
public class test37 {
//匿名内部类
public static void main(String[] args) {
//3.
test(new Swim(){
@Override
public void swimming() {
System.out.println("自由泳...");
}
});
//2.
Swim s = new Swim(){
@Override
public void swimming() {
System.out.println("自由泳...");
}
};
s.swimming();
//1.
new Swim(){
@Override
public void swimming() {
System.out.println("自由泳...");
}
}.swimming();
//lambda
Smoke smoke = new Smoke() {
@Override
public void smoke() {
System.out.println("点蚊香...");
}
};
smoke.smoke();
smoke = () ->{
System.out.println("点蚊香...");
};
smoke.smoke();
smoke = ()-> System.out.println("点蚊香...");
smoke.smoke();
Play p = x-> x>=18;
System.out.println(p.play(17));
//Play p = x-> System.out.println(x+"岁以下不许玩游戏");
}
public static void test(Swim swim){
swim.swimming();
}
}
interface Swim{
void swimming();
}
@FunctionalInterface
interface Smoke{
void smoke();
}
@FunctionalInterface
interface Play{
boolean play(int age);
}
Lambda表达式的应用
package youjixian01a;
/**.编写5星级酒店:
厨师,服务员,经理三个员工都有一些相同的属性和功能,
只有厨师和服务员有vip服务,厨师vip服务加菜,服务员嘘寒问暖,定义程序实现功能并测试。*/
public class test41 {
public static void main(String[] args) {
//VipService vip = ()-> System.out.println("加菜");
Staff chief = new Staff("张大厨",1);
chief.vipService(()-> System.out.println("加菜")
);
Staff manager = new Staff("蔡经理",0);
manager.vipService(() -> System.out.println("嘘寒问暖"));
}
}
interface VipService{
void vipService();
}
class Staff{
private String name;
private int sex;
public Staff() {
}
public Staff(String name, int sex) {
this.name = name;
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getSex() {
return sex;
}
public void setSex(int sex) {
this.sex = sex;
}
public void vipService(VipService vip){
System.out.print(this.name+"正在");
vip.vipService();
}
}
最近总是感觉到有点疲倦,今天下午一整个下午都没精神,唉~
到了一个很难受的年纪,因为自己接下来的每一次选择都可能会影响自己今后的生活,我有时会劝自己,一个人一个命,你怎么努力都比不上别人家里条件好的。最近接触了一些新的人才知道,有些人从小受到的教育都跟我不一样,接触到的东西有很多是我从前都没有听说过的,我有一种失落感。还有一些人出身也不是很好,但是认识的人比我多,知识比我渊博,学习还比我努力,这使我感到有些无所适从。难道我自己从前的看开了只是在安慰自己?是不是不努力就真的没用,是不是赚不到钱就真的不能够获得快乐,是不是内心的满足感真的没办法克服生活的落差?可是我迷惘,我惊慌,我找不到方向,我看不见前方路上的光。考研?找工作?留在上海还是回学校?我现在也有一直在学习,但是敲代码敲累了我就会感觉到倦意,然后失去动力,再难以爬起...
有智者说要活在当下,有志者说要为未来奋斗;
我更享受当下的时光,想把时间花在生活上;但有人说不努力赚钱就没办法享受时光,所以要将时间花在工作赚钱上。可人生就这么一次,我们全都是凭着别人的经验来评判是非,那么自己的感受是否还重要 。究竟我们要歇斯底里地在大城市奔波然后活着别人眼里的成功人士,还是放慢步调,在生活中找寻意义然后活在自己的世界里。但未来终究是未知的,我永远不知道自己所做的一切在未来会产生什么影响。我也想让自己的一生过得有意义,想造出一个改变世界的东西,但是我时长臣服于对自我的否定。世界很大,人心更大,只有我是渺小的。我想一生都可以做自己想做的事情,但我目前的条件时做不到的。奋斗或是一条能够完成理想的事情,但是假使我奋斗了一辈子,若干年后,我若不成功,又当如何?我若成功,那必然得经历少说十几年的波折,那么年华易逝,没了对生活的热情,即使实现了财富自由,可以不用再做任何事情,那么我是否还是我,我的人生又是否还是我的人生?于是我可能会选择另一条路,我不想一直那么累,所以我可能会不思进取,做着保安,送外卖,甚至打扫街道这种不需要动脑子的工作,然后发现自己仍会将大部分的时间用来做着别人生下来就会做的事情,也绝没有办法实现自己的理想。。。算了,有第三条路吗?
有的,一定有的,做一个有思想的人,不随大流,认真地感受自己活在这世上的每一分每一秒,享受自己酸甜苦辣,自己的每一种情绪,可以为了钱活得辛苦一点,但是也得允许你内心的欲望和愤怒得到释放。你可以没有目标,但你要明白你自己做的每一件事的意义,你可以从任何事中获得感悟,慢慢加深自己对这个世界的理解,对自己内心和他人思想的理解。努力学习和工作是自己生活的保障,但绝不是生活的全部,若生活只剩了努力,那么我们又为什么要过这样的生活。一半努力,一半生活。不停地思考,让自己的思想深刻起来,成为一个与众不同的人。
Life may give me no choice,but why should I need a choice?Just fucking lose myself into my life.