Java基础学习笔记

java 笔记
(笔记内的图片可另存为然后看大图)
Java基础笔记
path +;%path%则 接着有 不加就为新的 之前的废弃
path先认当前目录 classpath先认设置目录
classpath如果最后加;分号 则会如果不符合会在当前目录查询
不加分号 只认设置目录 不会在当前目录查询

写程序的时候先写注释 写明思路 需求 方法之类
文档注释后 用javadoc。exe可以形成文档

16进制用0x开头
8进制 用0开头
4个2进制位 是一个16进制位 2进制1111 代表15 再大该进位所以代表16进制
3个2进制位 是一个8进制位 2进制111 代表7 再大该进位所以代表8进制
负数的2进制变现为正数的取反 而且最高位为1 正数最高位为0

float 定义时候 最后要加F 如2.3F 因为默认是double
long 定义时候 最后要加F 如6L 因为默认是int

char2个字符 那为什么不能放2个英文

逻辑运算符
异或
^ true^true 为假 即两边相同为假
& “与”运算 一边假为假
&& “双与” 一边为假 即不往下运算 短路
| 与|| 区别 一个为真便为真 一个为真不往下运算 短路
>>右移的时候 最高位补值按照当时的最高位来补 即补值时负数为1 正数为0
>>>这个右移时候 无论 正负都按0来补值
位运算的时候 :
&运算为对2进制值的 逻辑运算 即一边为假即为假 算出2进制的加法值 0为假 1为真
|的运算和&一样
^为异或操作 ~为取反操作
??疑惑????
2进制的负数和正数怎么换算
位运算的时候 异或操作
^操作 a^b^b的话 还是a 所以^可以用来做加密操作 异或后 即为加密在异或回来即为解密

最快判断奇偶数的方法
public static boolean IsEven(int i)
{
return (i & 1) == 0;//如果是偶数就返回true
}
用关系运算符

多使用3元运算符
好处: IF esle的简化版
弊端:因为是一个运算符 所以必须的到结果
而if else 写法则不用


如果用switch语句时候 没有加break 则语句完成判断执行成功之后没有加break不跳出接着向下执行
知道碰到大括号 而不管case语句的判断 即case内的语句也会直接执行

switch和if区别
if能完成switch所有的
switch比if高效 因为直接全部读进内存进行判断 速度快
if语句判断完成往下读取不直接全部读取 速度不如switch快

for(int x=0;x<3:x++){
正确的
}
int x=0;
for(;x<3:){
x++;
也是正确的
}

for循环可以加名称以用来区分
a:for(int x=0;x<3:x++){
外层
b:for(int x=0;x<3:x++){
内层
break a;
}
}

continue 功能作用是
for(int x=0;x<3:x++){
continue 继续执行()内内容结束这次循环 下面的补执行
下面的代码不执行
可以在continue 加if判断来完成循环内的选择性执行或者嵌套循环
加名称来继续别的循环 continue a;
}

直接打印数组而不去遍历来取出所有值的话 会打印为[I@数组地址

功能相同的函数要用相同的名字 以重载形式存在

for循环要灵活运用 从小往大++ 也可以从大到小-- 看那个更高效

面向对象3个特征 封装 继承 多态
以后开发 其实就是找对象使用 没有对象就创建一个对象
找对象 建立对象 使用对象 维护对象的关系。

构造代码块{} 优先于构造函数 给对象初始化用的 适合用于执行每个构造函数都通有的下面的执行函数。

stactic 用于定义共享数据 定义之后 大家都能用。
static特点:
1,随着类的加载而加载。
也就说:静态会随着类的消失而消失。说明它的生命周期最长。

2,优先于的对象存在
明确一点:静态是先存在。对象是后存在的。

3,被所有对象所共享
4,可以直接被类名所调用。

静态使用注意事项:
1,静态方法只能访问静态成员。
非静态方法既可以访问静态也可以访问非静态。
2,静态方法中不可以定义this,super关键字。
因为静态优先于对象存在。所以静态方法中不可以出现this。
3,主函数是静态的。



静态有利有弊
利处:对对象的共享数据进行单独空间的存储,节省空间。没有必要每一个对象中都存储一份(这是关键 所以那些接口类的函数都是static静态类型的)。
可以直接被类名调用。
弊端:生命周期过长。
访问出现局限性。(静态虽好,只能访问静态。)
静态不能访问非静态的方法。因为静态是先存在。非静态是后存在的

private 表示类的私有属性,只可以在类内部访问使用;

写的方法和函数 要加文档注释

静态代码块。
格式:
static
{
静态代码块中的执行语句。
}

特点:随着类的加载而执行,只执行一次,并优先于主函数。因为主函数有名字 需要被虚拟机调用mian主函数名字才执行
用于给类进行初始化的。

/*
Person p = new Person("zhangsan",20);

该句话都做了什么事情?
1,因为new用到了Person.class.所以会先找到Person.class文件并加载到内存中。
2,执行该类中的static代码块,如果有的话,给Person.class类进行初始化。
3,在堆内存中开辟空间,分配内存地址。
4,在堆内存中建立对象的特有属性。并进行默认初始化。即先初始化为默认值 int为0 string为空。。 然后在赋值操作
5,对属性进行显示初始化。
6,对对象进行构造代码块初始化。
7,对对象进行对应的构造函数初始化。
8,将内存地址付给栈内存中的p变量。

*/


/*
这个是先初始化对象。
称为:饿汉式。

Single类一进内存,就已经创建好了对象。
class Single
{
private static Single s = new Single();
private Single(){}
public static Single getInstance()
{
return s;
}
}
*/

//对象是方法被调用时,才初始化,也叫做对象的延时加载。成为:懒汉式。
//Single类进内存,对象还没有存在,只有调用了getInstance方法时,才建立对象。
class Single
{
private static Single s = null;
private Single(){}
public static Single getInstance()
{
if(s==null)
{
synchronized(Single.class)
{
if(s==null)
s = new Single();
}
}
return s;
}
}

//记录原则:定义单例,建议使用饿汉式。

class
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}


写类的时候 要抽取共同部分 让下面的来继承
继承就是这么来的

覆盖:
1,子类覆盖父类,必须保证子类权限大于等于父类权限,才可以覆盖,否则编译失败。

2,静态只能覆盖静态。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java基础学习笔记 # 一、Java简介 Java是一种面向对象的编程语言,由Sun Microsystems(现在是Oracle)于1995年首次发布。它具有跨平台的特性,可以在不同的操作系统上运行。Java语言被广泛应用于开发各种类型的应用程序,包括桌面应用、Web应用、移动应用等。 # 二、Java基本语法 ## 1. 变量与数据类型 Java是强类型语言,每个变量必须先声明后使用。Java提供了多种数据类型,包括基本数据类型(整数、浮点数、字符、布尔值)和引用数据类型(类、接口、数组)。 ## 2. 运算符 Java提供了多种运算符,包括算术运算符、关系运算符、逻辑运算符等,用于进行各种数学或逻辑运算。 ## 3. 控制流程 Java提供了多种控制流程语句,包括条件语句(if-else语句、switch语句)、循环语句(for循环、while循环)、跳转语句(break语句、continue语句)等,用于控制程序的执行流程。 ## 4. 方法和类 Java中的方法用于封装一段可重复使用的代码,可以带有参数和返回值。类是Java程序的基本组织单位,包含了属性和方法。可以使用关键字class定义一个类,通过实例化类的对象来调用其方法。 # 三、面向对象编程 Java是一种面向对象的编程语言,面向对象编程的核心概念包括封装、继承和多态。 ## 1. 封装 封装是将数据和行为打包成一个类,通过访问修饰符(public、private等)控制对类的成员的访问权限。 ## 2. 继承 继承允许一个类继承另一个类的属性和方法,并且可以通过重写来修改或扩展继承的方法。 ## 3. 多态 多态允许通过父类类型的引用来引用子类对象,实现对不同子类对象的统一调用。 # 四、异常处理 Java提供了异常处理机制,用于处理程序中的错误情况。异常分为可检查异常(checked exception)和不可检查异常(unchecked exception),可以使用try-catch语句来捕获和处理异常。 # 五、Java标准库 Java标准库提供了大量的类和接口,用于完成各种常见的任务。其中包括输入输出、集合、多线程、网络编程等功能,可以大大简化开发过程。 以上是我学习Java基础笔记总结,希望对你有所帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值