Java基础链接整理

java编程解决瓶盖换饮料问题 场景:瓶酒2元/瓶,每2个空酒瓶可换一瓶啤酒,每4个啤酒盖可换1瓶啤酒,问:10元钱能买多少瓶啤酒?请用java代码编写一个计算出结果的方法。 方法一: 利用while循环,每次循环兑换2个空瓶或者4个啤酒盖,代码如下 public class buyBeer { public static void main(String[] args) { System.out.println("10元... 阅读详情

Java基础整理

Java基础知识整理:https://www.cnblogs.com/chenhao0302/p/7125874.html

一、对象

1、对象的三大特性:封装、多态、继承

2、对象的创建一般分为三步:

声明:声明一个对象,包括对象名称和对象类型

实例化:使用关键字new来创建一个对象

初始化:使用new创建对象时,会调用构造方法初始化对象

3、类是对象的模板,对象是类的实例。

4、引用数据类型与基本数据类型最大的不同在于:引用数据类型需要内存的分配和使用。所以,关键字new的主要功能就是分配内存空间,也就是说,只要使用引用数据类型,就要使用关键字new来分配内存空间。

5、任何情况下,只要看见new关键字都表示要分配新的堆内存空间,一旦堆内存空间分配了,里面就会有类中定义的属性,并且属性内容都是其对应数据类型的默认值。

6、引用传递的精髓:同一块堆内存空间,可以同时被多个栈内存所指向,不同的栈可以修改同一块堆内存的内容。

7、以后定义类的时候,最好所有属性都要编写private封装,封装之后的属性如果需要被外部操作,则编写setter、getter。

8、匿名对象由于没有对应的栈内存指向,所以只能使用一次,一次之后就将成为垃圾,并且等待被GC回收释放。

类和对象详解(一):http://blog.youkuaiyun.com/wei_zhi/article/details/52745268

类和对象详解(二):http://blog.youkuaiyun.com/wei_zhi/article/details/52750933

实例化与构造函数:https://www.cnblogs.com/bboyxiaoming/archive/2011/11/02/2233164.html

实例化的几种方法:http://www.jb51.net/article/112006.htm

二、抽象(abstract)

抽象方法是指没有方法体的方法,使用abstract关键词做修饰,拥有抽象方法的类就是抽象类,也是使用abstract关键词做修饰,另外,抽象类除了包含抽象方法外,还可以包含具体的变量和具体的方法。类即使不包含抽象方法,也可以被声明为抽象类,防止被实例化。

使用原则:

1. 抽象方法必须为public或者protected(因为如果是private,则子类无法继承,该方法无法被实现),缺省情况下默认为public;

2. 抽象方法不能直接实例化(即不能对直接通过new进行实例化),需要依靠子类采用向上转型的方式处理;

3. 抽象类必须有子类,采用extends继承,一个子类只能继承一个抽象类;

4. 子类(如果不是抽象类)需要覆盖抽象类中全部的抽象方法,倘若子类没有全部实现,则需要将子类也定义为抽象类;

5. 抽象类的构造方法,子类实现时,会先执行父类构造方法,而后执行子类构造方法。换句话说,抽象类具有构造函数,这些构造函数总是当具体子类被实例化时才调用;

6. 抽象类不能声明final(抽象类必须有子类继承,而final定义的类不能有子类);

7. 外部抽象类不允许使用static声明,内部抽象类可以使用static声明(继承时使用“外部类名.内部类名”形式表示类名);

8. 抽象类中可以调用static方法;

9. 抽象类也可以继承实体类,也可以实现接口,没有什么特别的限制

10. abstract 不能与private、static、final或native并列修饰同一个方法。

抽象类详解:http://blog.youkuaiyun.com/wei_zhi/article/details/52736350

抽象类的概念和使用:http://blog.youkuaiyun.com/eff666/article/details/52324985

抽象类:http://www.cnblogs.com/chenssy/p/3376708.html

三、接口

接口:接口通常以interface来声明,接口是一个特殊的类,这个类里面只有全局变量和抽象方法,没有构造方法。

接口的使用:

1、由于接口里面有抽象方法,所以接口对象不能直接是用关键字new实例化,接口对象可以利用子类对象的向上转型进行实例化;

2、接口必须要有子类,但一个子类可以使用implements实现多个接口;

3、接口的子类(如果不是抽象类),必须覆写接口中的全部抽象方法;

4、对于子类而言,既可以继承抽象类,又可以实现接口;

5、 接口里面只有全局变量和抽象方法,所以可以省略public static final或public abstract,接口中的访问权限只有一种:public。因为接口中默认是public修饰,若子类中没用public修饰,则访问权限变严格了,给子类分配的是更低的访问权限,所以建议接口方法前加public;

6、一个抽象类(或实体类)只能继承一个抽象父类(或实体父类),但一个接口可以继承多个接口;

Java8(JDK8)中在接口中引入了default默认方法,它是一个接口的是实现方法,可以用来继承,默认方法允许接口方法定义默认实现,而所有子类都将拥有该方法及实现。

1、当继承的父类和实现的接口中有相同签名的方法时,优先使用父类的方法。

 2、当接口的父接口中也有同样的默认方法时,就近原则调用子接口的方法。

 3、子类中的方法优先级最高

 4、当实现的多个接口中有相同签名方法时,必须在实现类中通过重写方法解决冲突问题,否则无法通过编译,在重写的方法中可以通过 接口名.super.方法名(); 的方式显示调用需要的方法.

 5、default方法不能重写abstract方法,它只能重写父类的default方法,同时default方法不能具有和abstract方法相同的名称。

抽象与接口设计上的区别:

1、抽象类是对类抽象,而接口是对行为的抽象。

2、抽象类所体现的是一种继承关系,要想使得继承关系合理,父类和派生类之间必须存在"is-a" 关系,即父类和派生类在概念本质上应该是相同的。对于接口则不然,并不要求接口的实现者和接口定义在概念本质上是一致的,仅仅是实现了接口定义的契约而已,接口所代表的是"like-a" 关系。

3、抽象类是自底向上抽象而来的,接口是自顶向下设计出来的。 

接口讲解一:http://blog.youkuaiyun.com/wei_zhi/article/details/52738471

接口讲解二:http://blog.youkuaiyun.com/wei_zhi/article/details/52743109

接口:http://blog.youkuaiyun.com/qq_26971305/article/details/54293526

接口中的默认方法(default):http://blog.youkuaiyun.com/travellersy/article/details/74537170

https://www.cnblogs.com/luozhiyun/p/7999705.html

抽象与接口:http://www.cnblogs.com/chenssy/p/3376708.html

Abstract与interface区别:https://blog.youkuaiyun.com/wei_zhi/article/details/52449970

四、继承

继承是面向对象最显著的一个特征。继承是从已有的类中派生出新的类,新的类能吸收已有类的属性和行为,并能拓展新的能力。子类又称为派生类,父类有称为超类或基类。使用继承可以有效实现代码复用,避免重复代码的出现。

1、子类即使不扩充父类,也能维持父类的操作。

2、子类实际上是将父类定义的更加具体的一种手段,父类表示的范围大,子类表示的范围小。

3、Java之中只允许多层继承,不允许多重继承,java存在单继承局限(只针对类,接口可以继承多个接口)。

4、子类继承时,只能继承父类所有非私有的方法和属性,对于构造器而言,只能被调用,不能被继承。

5、在继承关系之中,如果要实例化子类对象,会默认先调用父类构造,为父类之中的属性初始化,之后再调用子类构造,为子类之中的属性初始化。即:默认情况下,子类会找到父类之中的无参构造方法,若父类没有无参构造,则子类必须通过super()调用指定参数的构造方法。

6、super调用父类构造时,一定放在构造方法的首行上。this也是在构造函数的第一行,不能与super同时出现。

7、super代表当前子类对父类的引用。this代表对象的引用(谁调用就代表谁)。

8、this.方法():先从本类查找是否存在指定的方法,如果没有找到,则调用父类操作; super.方法():直接由子类调用父类之中的指定方法,不再找子类。

9、子类转换成父类,在继承关系上面是向上移动的,所以一般称之为向上转型。

10、对于protected而言,它指明就类用户而言,它是private,但是对于任何继承与此类的子类而言或者其他任何未予同一个包的类而言,它却是可以访问的,父类可以通过protected方法来控制类的继承者的访问权限。

11、继承是一种强耦合关系,父类变,子类必须变,所以谨慎使用继承。

12、当一个类中的方法被覆写后,如果实例化的是这个子类对象,则调用的方法就是被覆写过的方法,但被子类所覆写的方法不能拥有比父类更严格的访问控制权限。

 

继承详解:http://blog.youkuaiyun.com/wei_zhi/article/details/52780026

继承概念参考:http://www.cnblogs.com/chenssy/p/3354884.html

覆写详解:https://blog.youkuaiyun.com/wei_zhi/article/details/52780371

五、多重继承

多重继承指的是一个类可以同时从多于一个的父类那里继承行为和特征,然而我们知道java为了保证数据安全,它只允许单继承,所以我们可以通过接口和内部类实现多重继承。

实现多重继承:http://www.cnblogs.com/chenssy/p/3389027.html

Java多重继承:https://www.cnblogs.com/haodawang/p/5967249.html

六、多态

多态基础:http://www.cnblogs.com/chenssy/p/3372798.html

七、内部类

内部类的最大优点:可以方便的访问外部类的私有操作,或者是由外部类方便的访问内部类的私有操作。

内部类主要分为:成员内部类、局部内部类、匿名内部类、静态内部类。

内部类详解:http://www.cnblogs.com/chenssy/p/3388487.html

匿名内部类详解:http://www.cnblogs.com/chenssy/p/3390871.html

(作者地址:http://cmsblogs.com/)

内部类详解:http://blog.youkuaiyun.com/suifeng3051/article/details/51791812

内部类总结:https://www.cnblogs.com/hasse/p/5020519.html

四种内部类:http://blog.youkuaiyun.com/qq_33599978/article/details/70880803

喝啤酒案例[java编写] 题目:一瓶啤酒2元钱,2个啤酒瓶可换一瓶啤酒,4个啤酒瓶盖可换一瓶,10元最多喝多少瓶啤酒? 版本1:使用while循环实现 package cn.lzu.demo; import java.util.Scanner; public class BeerDemo { /* * 一瓶啤酒2元钱,2个啤酒瓶可换一瓶啤酒, * 4个啤酒瓶盖可换一瓶,10元最多喝多少瓶啤酒? 阅读详情

相关推荐

面试专区|【30道C++ 基础高频题整理(附答案背诵版)】

在C++中,变量的声明和定义是两个不同的概念。声明是告诉编译器某个变量的存在,以及它的类型。声明并不分配存储空间。例如,外部变量的声明extern int a;,这里只是告诉编译器有一个类型为int的变量a存在,具体的a在哪里定义的,编译器此时并不知道。定义是声明的延伸,除了声明变量的存在和类型以外,还分配了存储空间。例如,int a;就是一个定义,编译器在这里为a分配了足够的存储空间来存储一个整数。在C++中,一个变量可以被声明多次,但只能被定义一次。

尺小闹的博客 5220

JAVA算法:啤酒2元一瓶,4个瓶盖可以换一瓶啤酒,2个空瓶可以换一瓶啤酒,输入多少钱可以喝多少瓶?

package com.stxy;import java.util.Scanner;/** * 啤酒2元一瓶,4个瓶盖可以换一瓶啤酒,2个空瓶可以换一瓶啤酒,输入多少钱可以喝多少瓶? *  *  * @author Administrator *  */public class Test1 {    // 定义一个变量,最终可以喝多少瓶    private static int totalNum...

A1229451567的博客 7740

2025Java笔试题选择题整理(附答案解析)

本文通过一系列Java编程题目,深入解析了字符串处理、包导入、继承与多态、线程同步、异常处理等核心概念。重点内容包括: 字符串常量池特性及==与equals区别(题1) java.lang包的自动导入机制(题2) 子类构造方法调用规则(题3) 静态/非静态代码块执行顺序(题4) 多态中的编译与运行机制(题5) 内部类声明规范(题6) 线程同步的监视器实现(题8) 事务隔离级别与并发问题(题11) 线程安全类识别(题13) 异常处理流程(题16) 这些题目全面覆盖了Java编程中的关键知识点,通过具体代码示例

2401_89221445的博客 1612

Java面试题:有20块钱,1块钱能买一瓶汽水,2个瓶子能换一瓶汽水,3个瓶盖能换一瓶汽水, 问一共能喝多少瓶汽水。(递归)

public class BuySoda { public static void main(String[] args) { BuySoda buy = new BuySoda(); int num = buy.buywater(20, 0, 0); System.out.println("一共能喝" + num + "瓶汽水"); } /* * 创建没水的方法,传入三个...

rootkiss的博客 2758

Charles 抓包工具下载安装及基础使用

本篇内容主讲关于Charles抓包工具,从下载安装以及配置信息,证书的下载安装以及PC端设置代理配置和移动端设备配置代理,阐述关于Charles抓包工具面板的基础使用以及如何进行抓包和设置断点,对于软件测试以及对抓包感兴趣的读者可以翻阅!感谢大家的支持!!!

灵魂学者的博客 2958

VS2015+Qt+OpenCV+open62541开发过程(05_VS2015中使用OPCUA open62541通过Kepware读写PLC数据)

此外还需要所需lib包:WS2_32.Lib(opcua通讯用到的库,opcua使用socket通讯,需使用此库),添加#pragma comment(lib,"ws2_32.lib") 语句,有的文章说需要添加ws2_32.lib文件或ws2_32.dll到项目资源中,貌似影响不大。2.在VS中选择x64平台会报错,选择x86平台可以用,应该是ws2_32.lib相关的库不支持64位,目前没有解决,继续后面的实验,看看用Qt后是否可以解决。6.VS中建立的变量,与读取的OPC点数据类型注意对应。

zzh17的博客 1862

【Java基础】个人笔记链接整理

【Java基础】栏目重点在于整理Java的基础知识点,整理总结内容速览:【持续更新中......】 1. Java运算符与表达式:运算符、运算符优先级、表达式(自增/自减,短路,三目,Lambda等) https://blog.youkuaiyun.com/qq_29119581/article/details/111323450 2.Java数据类型:变量、基本数据类型、引用数据类型、instanceof关键字 https://blog.youkuaiyun.com/qq_29119581/article/detail.

小确幸的博客 286

操作系统笔记(含王道计算机考研——操作系统课件)

操作系统(OS) 笔记根据B站王道计算机考研——操作系统视频整理所得,视频链接:https://b23.tv/0I2qex 视频中所用课件:链接:https://pan.baidu.com/s/101bFWm0Tv0emNpEneidYPA 提取码:y3dd 1.计算机系统概述 1.简介 什么是操作系统? 操作系统(Operating Ststem, OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,它是

拧发条鸟的博客 6万+

狂神笔记链接整理

狂神所有笔记链接整理 有更好的烦请call me 感谢 技术 链接 基础面试题 https://gitee.com/li123456sen/openclass 多线程 (凑合用) https://blog.youkuaiyun.com/weixin_44502509/article/details/106794227 网络编程(凑合用) https://blog.youkuaiyun.com/qq_38377803/article/details/105480602 java注解与反射(凑合用) ht

lisen01070107的博客 7654

vins-mono保存、重载地图、evo工具测试

下面咱们来对vins-mono的重定位vins-mono官方源码地址:https://github.com/HKUST-Aerial-Robotics/VINS-Mono https://blog.youkuaiyun.com/learning_tortosie/article/details/83182258 运行这条: roslaunch benchmark_publisher publish.launc...

追 1万+

PC网站实现微信扫码登录功能(二)

上篇我们介绍了怎么申请账号以及最后拿到appId和appSecret,如果有不清楚的可以看一下 PC网站实现微信扫码登录功能(一) 下面我就来说一下怎样在PC端怎么实现扫码登录功能。 一、进入官方文档网站 https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html 其实官网对过程描述的已经非常细致了。并且提供了两种扫码方式。一种是跳转二维码扫描页面,另一种是内嵌式二维码。大家可以

qq_35771266的博客 3万+

网上一份java基础面试题&整理的答案(或链接)①

网上看到一份号称史上最全的Java工程师面试题汇总,全会的话月薪至少3W+,那就根据里面的内容,自己找找相关的答案 Java基础知识 java中==和equals和hashCode的区别 答案简述: 1、==运算符是判断两个对象是不是同一个对象,即他们的地址是否相等 2、object类中equals与==是等效的 3、覆写equals更多的是追求两个对象在逻辑上的相等,你可以说是值相...

sinat_38020023的博客 317

PCL 利用RANSAC改进的ICP算法

本文介绍了一种基于RANSAC改进的ICP点云配准算法。算法原理部分阐述了在ICP迭代过程中使用RANSAC剔除错误匹配点对的方法。

点云侠的博客 196

Java学习书籍整理

不知不觉中,做Java开发已经四年了,趁着现在换了工作,还算比较闲,就整理一下自己学习的一些知识。 在学习过程中,我喜欢找的一些电子书来系统化的学习,多数时候我都只是做一个大概的了解,没有深入学习,基本就是看下目录,看下前几章的内容,深入的只会在实际用的时候才去详细看了。我从以下几个方面整理了一下这些学习的电子书,分享给大家,免得到处去找这些资源,百度脑图里面的分类也...

为何生存 1万+

llama.cpp 参数调优大全(4060 最优配置)

本文针对NVIDIA RTX 4060(8GB显存)显卡,提供了llama.cpp参数调优的实战指南。核心策略是采用小模型(7B/8B)配合Q4_K_M量化,通过合理设置GPU层数(-ngl 28)、上下文长度(-c 2048)和批量大小(-b 512)来平衡性能和显存占用。重点推荐启用flash-attn加速和mlock内存锁定,并给出标准、高性能和保守三种配置方案。调优优先级为:GPU利用率>吞吐量>显存>线程数,同时警示避免常见错误如过大上下文或GPU层数设置。最终推荐4060最佳配置为7B Q4_

刘一说的IT专栏 3404

SAP S/4HANA Public Cloud 的 Development Tenant 深度解析

在传统的 SAP On-Premise 版本中,企业通常拥有完整的开发、测试、生产环境,开发人员可以直接访问 ABAP 代码,进行深度定制。然而,S/4HANA Public Cloud 采用了标准化的 SaaS 模型,不允许用户直接修改核心代码。因此,SAP 提供了一种新的开发方式,即 Development Tenant,允许企业在不破坏核心系统稳定性的前提下,实现个性化扩展。Development Tenant 主要用于 SAP S/4HANA Public Cloud 的扩展开发。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 849

有关Java学习的图书整理

今天抽空整理了一下手上的图书资源,主要是技术方面的,都是Java方向所需要的图书,有需要的童鞋可以自己下载, 有Java基础、JVM、多线程、数据库、MQ、Redis等常用的材料,链接如下: 链接: https://pan.baidu.com/s/1qnAXtKaPLcEkGrFjusz7tA 提取码: 9nma 复制这段内容后打开百度网盘手机App,操作更方便哦 ...

代码搬运工的博客 189

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

学java_老杜带你学Java【第四课】

上期链接:老杜带你学Java【第三课】01写在前面欢迎来到杜老师的「零基础学Java」课堂~今后,我们就是Java软件工程师了。(此处应该有掌声????????????)本专题为《零基础学Java》专题,将带你学习2020年全新Java零基础教程,由杜老师亲自录制,采用JDK13版本,包含316集视频,18篇课堂笔记。我们的推送内容将以「 学习视频 + 对应笔记 」的形式为大家呈现,每周一更。共18课。大...

weixin_39960793的博客 362

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Java菜鸟基础学习——网盘资源分享

学习完Java基础课程已经有段时间了,黑马刘意基础班的课程名不虚传,作为一个0基础学Java的菜鸟小白,把课程快进听了两遍,细心做了笔记,也算总算过了基础这一关了。以后就常备《Java 核心技术 1》这本宝典和时刻准备Google了,要想真正全部记住,还是需要每天做基础题和复习基础知识才行。 网上有很多非常详细的菜鸟教程和学习笔记,我再发布重复的笔记,而且是毫无内涵的基础知识copy,真的没有什么意义。 和我一样准备零基础学习Java的,可以在下面链接中找到刘意老师的课程资源,还附带有两个黑马2019基

ly_222222的博客 819

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

一文整理总结常见Java后端面试题系列——Java基础篇(2022最新版)

为什么会出现自动拆装箱Java 语言是一个面向对象的语言,但是 Java 中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类(Wrapper Class)。使得基本数据类型也具有了对象的性质,并且为其添加了属性和方法,丰富了基本类型的操作。

程序猿周周的博客 2万+

Java高级markdown笔记整理(尚硅谷康师傅)

Java基础markdown笔记整理(尚硅谷康师傅) Java高级部分的也整理出来了,大家需要自取哈 预览一下~~ 链接:https://pan.baidu.com/s/1pnBQHw4zLsphcynDq7nvUg 提取码:96gp 希望可以共同进步!冲冲冲!!!! ...

liumengqi11的博客 2568

java 8进制串转中文_老杜带你学Java【第六课】

上期链接:老杜带你学Java【第五课】01写在前面欢迎来到杜老师的「零基础学Java」课堂~今后,我们就是Java软件工程师了。(此处应该有掌声???)本专题为《零基础学Java》专题,将带你学习2020年全新Java零基础教程,由杜老师亲自录制,采用JDK13版本,包含316集视频,18篇课堂笔记。我们的推送内容将以「 学习视频 + 对应笔记 」的形式为大家呈现,每周一更。共18课。大...

weixin_31588005的博客 350

java 键盘输入_老杜带你学Java【第八课】

上期链接:老杜带你学Java【第七课】01写在前面欢迎来到杜老师的「零基础学Java」课堂~今后,我们就是Java软件工程师了。(此处应该有掌声???)本专题为《零基础学Java》专题,将带你学习2020年全新Java零基础教程,由杜老师亲自录制,采用JDK13版本,包含316集视频,18篇课堂笔记。我们的推送内容将以「 学习视频 + 对应笔记 」的形式为大家呈现,每周一更。共18课。大...

weixin_39602571的博客 94

Java基础及JavaWEB以及SSM框架学习笔记Xmind版

Java基础及JavaWEB以及SSM框架学习笔记Xmind版 转行做程序员也1年多了,最近开始整理以前学习过程中记录的笔记,以及一些容易犯错的内容。现在分享给网友们。笔记共三部分。 JavaSE 目录如下: 部分笔记: JavaWEB 目录如下: 部分笔记: SSM框架 目录如下: 部分笔记: 下载方式: 笔记我全都打包放在了我的网盘里。需要的朋友直接百度云下载 链接:...

weixin_30385925的博客 416
上一篇: laravel日常使用总结
下一篇: Several ports (8005, 8080, 8009) required by Tomcat v7.0 Server at localhost are already in use.
小瓶盖儿zzz
博客等级 码龄9年 9粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值