Java速学

步骤:
1、加载Spring—pom.xml
2、UserService接口-方法-实现类:service业务相关-用户注册 Impl判断插入是否
3、创建spring的控制的资源–bean
4、加载配置文件
5、获取资源:dao操作相关-增删查改 mapper数据库映射

@MapperScan("com/example/demo/mapper")      启动类的主函数
--- userMapper映射文件
@Select("select * from user")
  List<User> findAll();

User实体entity 声明字段属性的 get&set == @Data (Lombok)
控制器userController

  @RestController
  @RequestMapping("/user") //url路径跳转地址
public class UserController {
   @Resource
   UserMapper userMapper; //声明调用的类userMapper
   
   @GetMapping    //可追加定义的具体路径("") 接口类型+路径	
   public List<User> getUser(){  //String -> List<User>返回user的列表形式
      return userMapper.findAll();
}

总结:
一、数据库连接配置
二、实体与数据库一一对应
三、主函数(@MapperScan)、mapper映射(@select)、控制器配路径(返回list)

一、Annotation注解

常用注解分类用法
@Component组件(Bean) 使用时只需将其标注在相应类上即可
@Repository数据访问层(DAO层)以下三功能与@Component相同
@Service业务层,将业务层的类标识为 Spring中的Bean
@Controller控制层,注解标注了UserController类
@Autowired默认按照Bean的类型进行装配
@Resource默认按照Bean实例名称进行装配(name、type)
@Qualifier与⑤配合使用,将默认修改为Bean的实例名称装配

用法:静态成员 ——> 变量初始化为默认值——>构造器——>为变量赋值。
构造(有参、无参)函数用来创建类的实例化对象(初始化工作)

User实体entity 声明字段属性的 get&set == @Data (Lombok)

请求映射注解:@Controller @RequestMapping
参数绑定注解:@ResponseBody @SessionAttribute
组合注解:@RestController相当于是@Controller和@ResponseBody的组合。[Restful风格]

@MapperScan(“com/example/demo/mapper”)   //启动类的主函数,扫描映射
@RequestMapping(“/user”)   //url路径跳转地址
@Resource
UserMapper userMapper; //声明调用的类userMapper
@GetMapping   //可追加定义的具体路径(“”) 接口类型+路径

二、数据结构

1、集合

1.1 Collections

Collections:针对集合操作的工具类
sort自然排序也就是升序、reverse反转指定列表中元素的顺序、shuffle随机源随机排列用在洗牌中

1.2 TreeSet

想要使用TreeSet,需要制定排序规则
1、自然排序:空参构造创建TreeSet集合-Student类实现Comparable接口-重写compareTo方法
2、比较器排序:让集合构造方法接收Comparator的实现类对象,重写compare方法
根据返回值进行排序,关于返回值规则:负数存左边,等于重复了不存,正数存右边(字典规则)

 int result = this.age - o.age; //主要判断条件
 result = result == 0 ? this.name.compareTo(o.getName) : result; //次要判断条件

equals:哈希算法(hashmap)加载因子[0.75]扩容
数组-链表-红黑树(添加变慢,其余更优)
ConcurrentHashMap 隔离级别[16]
无锁CAS算法,效率高

2、数组

数组:查询快,增删慢(索引、数据)
链表:增删快,查询慢(结点、地址)
List集合常用实现类 ArrayList :底层数据结构是数组 elementData(数组名)
空参构造创建ArrrayList对象: List list= new ArrayList<>( );
LinkedList :底层数据结构是链表,查询慢,增删快

3、泛型

3.1 泛型

泛型:参数化类型(类、方法、接口)定义方法时有形参,然后调用方法时传递实参
将类型由原来的具体的类型参数化,然后在使用/调用时传入具体的类型
创建集合对象:默认Object 引用类型
方法名相同,参数列表不同,这叫方法重载

3.2 泛型接口

泛型接口无法直接进行实例化,需要使用实现类Impl=List->ArrayList(T t)
//实现类Impl中重写方法:implements、void show(T t)
Generic g1 = new GenericImpl( );

3.3 类型通配符

类型通配符:list<? extends 类型> extends上限取子类型 super下限取父类型 List<? super Number> l2 = new ArrayList( ); Object<-Number<-Integer list<?>任意类型

Java类实现interface使用implements关键词,继承abstract class则是使用extends关键词,我们可以参考Java标准库中的ArrayList

4、迭代器对象

迭代器对象一旦被创建出来,默认指向集合的0索引处

Iterator<String> it = list.iterator();
  while(it.hasNext()){   //当前位置是否有元素可以被取出
  System.out.println(it.next());     //取出当前位置元素+将迭代器往后移一个索引位置
 }

5、Lambda表达式

Lambda-简化匿名内部类 【数组或集合对象】
策略设计模式: 数组转集合,方法返回值(遍历参数)
    泛型并实例化

" -> " 箭头符号
左侧:抽象方法的形参,右侧:具体实现类的方法

学习方法时,首先创建一个对象 [抽象方法T->String] 底层遍历集合
  集合对象+泛型 = new 实现类(不能直接new一个接口Collection)

 Collection<String> collection = new ArrayList<>();  //空参构造
   //boolean test(T t);注T表示集合数据类型
  collection.removeIf(
     (String s)-> {
         return s.length() == 3
        }
   );

//Lambda表达式小括号中与抽象方法形参保持一致(T t),大括号与抽象方法返回值boolean一致

附:对象
mybatis参数传递用#{},@Transactional事务注解
controller写接口,mapper写方法
数据库名、表名、表别名、字段名、字段别名等全部小写(驼峰命名)
@RequestParam ?pageNum=&pageSize=分页插件
page 泛型T 处理数据、调用方法、new 对象
分页:查总数 count(id) 查数据offset、pageSize

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值