首页 文章 精选 留言 我的

精选列表

搜索[java],共10000篇文章
优秀的个人博客,低调大师

Java 内部类创建、调用外部方法

JDK 1.8.0 创建内部类类对象 Outer outer = new Outer(1L,"fater"); Outer.Inner inner = outer.new Inner(2L,"son"); 内部类对象调用外部类方法 内部类与外部类没有重名的方法,可以直接调用外部类方法 内部类与外部类存在重名的方法,必须使用 Outer.this.method() 来进行调用,否则优先调用内部类的方法 public class Outer { private Long id; private String name; public Outer(Long id, String name) { this.id = id; this.name = name; } public void test(){ System.out.println("Outer "+this.id+"--"+this.name); } class Inner{ private Long id; private String name; public Inner(Long id, String name) { this.id = id; this.name = name; } // public void test(){ // System.out.println("Inner "+this.id+"--"+this.name); // System.out.println("my fater is"); // //test(); // 会调用内部类的test()方法,无限循环报错 // Outer.this.test();// 调用外部类方法 // } public void test2(){ System.out.println("Inner "+this.id+"--"+this.name); System.out.println("my fater is"); Outer.this.test(); //test(); // 两种方式皆可,调用外部类方法 } } public static void main(String[] args) { Outer outer = new Outer(1L,"fater"); Outer.Inner inner = outer.new Inner(2L,"son"); inner.test2(); } }

优秀的个人博客,低调大师

java使用阿里oss和短信功能

提供阿里oss和短信功能 一、导入依赖 <dependency> <groupId>cn.gjing</groupId> <artifactId>tools-ali</artifactId> <version>1.1,0</version> </dependency> 二、项目使用 1、阿里OSS: 文件简单上传(最大文件不能超过5G)上传成功后返回图片地址,失败会返回错误信息,后续根据返回结果自行处理; @PostMapping("/upload") @ApiOperation(value = "上传图片", httpMethod = "POST") public ResponseEntity testUpload(

优秀的个人博客,低调大师

突破Java面试(20)-Redis线程模型

1 面试题 redis和memcached有什么区别?redis的线程模型是什么?为什么单线程的redis比多线程的memcached效率要高得多(为什么redis是单线程的但是还可以支撑高并发)? 2 考点分析 这个是问redis的时候,最基本的问题,redis最基本的一个内部原理和特点,就是redis实际上是个单线程工作模型,你要是这个都不知道,那后面玩儿redis的时候,出了问题岂不是什么都不知道? 还有可能面试官会问问你redis和memcached的区别,不过说实话,最近这两年,作为面试官都不太喜欢这么问了,memched是早些年各大互联网公司常用的缓存方案,但是现在近几年基本都是redis,没什么公司用memcached了 额外的友情提示同学,你要是现在还不知道redis和memcached是啥?那你赶紧百度一下redis入门和

优秀的个人博客,低调大师

同步响应参数验签示例(Java

一、同步返回参数和同步响应参数的区别 1.同步返回的参数是指在接口的请求参数中传入return_url参数,在支付成功后在return_url地址后面返回的如: [url]https://m.alipay.com/Gk8NF23?total_amount=9.00&timestamp=2016-08-11+19%3A36%3A01&sign=ErCRRVmW%2FvXu1XO76k%2BUr4gYKC5%2FWgZGSo%2FR7nbL%2FPU7yFXtQJ2CjYPcqumxcYYB5x%2FzaRJXWBLN3jJXr01Icph8AZGEmwNuzvfezRoWny6%2Fm0iVQf7hfgn66z2yRfXtRSqtSTQWhjMa5YXE7MBMKFruIclYVTlfWDN30Cw7k%2Fk%3

优秀的个人博客,低调大师

Java数据结构——单向链表实现

/** * 单向链表实现类 * @Description * 类描述: * @author GaoAnQiu * @Date * @modify * 修改记录: * */ public class Link { private int size = 0; private Node first; private Node last; public Node getFirst() { return first; } public void setFirst(Node first) { this.first = first; } public Node getLast() { return last; } public void setLast(Node last) { this.last = last; } public Link() { } /** * 返回链表长度 * @Description * 方法描述: * @return 返回类型: int * @return */ public int getLength() { return size; } public void printLink(Link link) { Node temp = first; while (temp != null) { System.out.print(temp.getData() + "-->"); temp = temp.getNext(); } System.out.println(); } /** * 返回指定位置的节点 * @Description * 方法描述: * @return 返回类型: Node * @param index * @return */ public Node get(int index) { Node temp = first; for (int i = 0; i < index; i++) { temp = temp.getNext(); } return temp; } /** * 插入第一个元素,头和尾都指向同一个元素 * @Description * 方法描述: * @return 返回类型: void */ private void onetNode(int element) { first = new Node(); first.setData(element); last = first; } public void addHead(int element) { if (size == 0) { onetNode(element); } else { Node node = new Node(); node.setData(element); node.setNext(first); first = node; } size++; } /** * 插入尾结点 * @Description * 方法描述: * @return 返回类型: void * @param element */ public void addTail(int element) { if (size == 0) { onetNode(element); } else { Node node = new Node(); node.setData(element); last.setNext(node); last = node; //将插入的结点设置为尾结点 size++; } } /** * 插入中间元素 * 头尾两处需要特殊处理 * @Description * 方法描述: * @return 返回类型: void * @param index * @param element */ public void add(int index, int element) { if (index > size) { throw new IndexOutOfBoundsException("待插入的位置超过链表的最大长度。"); } else { if (index == 0) { //下标为0时,插入头元素 addHead(element); } else if (size == index) { //下标与链表长度一致时,插入尾元素 addTail(element); } else { Node preNode = get(index - 1); // Node nextNode = get(index); Node newNode = new Node(); newNode.setData(element); preNode.setNext(newNode); newNode.setNext(nextNode); size++; } } } /** * 删除头节点 * @Description * 方法描述: * @return 返回类型: void */ public void delHead() { if (size == 0) { throw new IndexOutOfBoundsException("空链表,无元素可删除"); } else { if (size == 1) { //只有一个节点时,清空链表 clear(); } else { Node nextNode = first.getNext(); first = nextNode; } size--; } } /** * 清空链表 * @Description * 方法描述: * @return 返回类型: void */ public void clear() { first = last = null; size = 0; } public void delTail() { if (size == 0) { throw new IndexOutOfBoundsException("空链表,无可删除的元素。"); } else if (size == 1) { clear(); } else { //取出尾节点的前一个节点,next赋值为null Node preTail = get(size - 2); preTail.setNext(null); last = preTail; size--; } } /** * 删除节点 * @Description * 方法描述: * @return 返回类型: void * @param index */ public void del(int index) { if (index >= size) { throw new IndexOutOfBoundsException("删除位置越界"); } else { if (index == 0) { delHead(); } else if (index == size - 1) { delTail(); } else { Node preNode = get(index - 1); Node nextNode = get(index + 1); preNode.setNext(nextNode); size--; } } } } public class Node { private int data;//数据 private Node next;//指针 public int getData() { return data; } public void setData(int data) { this.data = data; } public Node getNext() { return next; } public void setNext(Node next) { this.next = next; } }

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册