热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Javase基础语法篇

运算符&和&&、|和||的区别吗?&按位与操作只有对应的两个二进制数为1时,结果位才为11&111&000&100&00|按位或操作有一个为1的时候,结果位就为11|




运算符 &和&&、 |和||的区别吗?

& 按位与操作
只有对应的两个二进制数为1时,结果位才为1
1&1=1
1&0=0
0&1=0
0&0=0
| 按位或操作
有一个为1的时候,结果位就为1
1|1=1
1|0=1
0|1=1
0|0=0

& 和 && 都可以实现 和 这个功能
区别:& 两边都运算,⽽而 && 先算 && 左侧,若左侧为false 那么右侧就不不运算,判断语句句中推荐使⽤用 &&,效率更更⾼高
| 和 || 和上⾯面类似
区别:||只要满⾜足第一个条件,后⾯面的条件就不不再判断,⽽而|要对所有的条件进⾏行行判断
把&&和||称之为短路路运算符

用最有效率的方法计算2乘以8

原理:将一个数左移n位,相当于乘以2的n次方,位运算是CPU直接支持的,所以效率高
答案:2<<3
常见的JDK源码里面HashMap的默认容量16
int DEFAULT_INITIAL_CAPACITY = 1 <<4; // aka 16
直接是二进制操作了了,表示1左移4位,变成10000,转为10进制也就是16, 直接以二进制形式去运⾏行行,
效率更更⾼高

写个方法,传递两个非0的int数值进去,实现变量量交换的方式,有几种方式?


  • 方式一

    public static void swag(int a, int b) {
    System.out.println("a="+a+",b="+b);
    a = a + b;
    b = a - b;
    a = a - b;
    System.out.println("a="+a+",b="+b);
    }

  • 方式二 异或运算(一个数与另一个数异或两次是其自身,一个数和自身异或结果是0)

public static void swap2(int a, int b) {
System.out.println("a=" + a + ",b=" + b);
a = a ^ b; //a1 = a^b
b = b ^ a; // b = b^a^b 此处a与b异或两次,最终结果是a
a = a ^ b; // a = a1^b = a^b^a 此处b与a异或两次,最终结果是b
System.out.println("a=" + a + ",b=" + b);
}

javase基础语法篇之类型

简介:java数据类型花费


java的数据类型分类


  • 基础数据类型:

四类八种字节数默认值封装类
整型(精确)byte1(byte)0Byte
整型(精确)short2(short)0Short
整型(精确)int(默认)40Integer
整型(精确)long80LLong
浮点型(不精确)float40.0fFloat
浮点型(不精确)double(默认)80.0dDouble
字符型char2\u0000(null)Character
布尔型boolean1falseBoolean

  • 引用数据类型:其他都是应用类型
  • String和Enum分别是什么类型:引用类型

运算

定义变量 int i = 5;
return i++; 和return ++i; 返回结果是什么
答:分别是6 、 5

==和equals的区别


  • 基本数据类型比较 要用==判断是否相等
  • 引用数据类型: ==比较的是内存地址是否一样,不同对象的内存地址不一样,equals比较的是具体的内容,也可以让开发者去定义什么条件去判断两个对象是否一样

try-catch-finall执行顺序

下面代码 的try-catch-finally语句句,try里面有个return, finally里面也有个return,结果会返回什么?为什么

public static int test1() {
int a = 1;
try {
System.out.println(a / 0);
a = 2;
} catch (ArithmeticException e) {
a = 3;
return a;
} finally {
a = 4;
}
return a;
}
public static int test2() {
int a = 1;
try {
System.out.println(a / 0);
a = 2;
} catch (ArithmeticException e) {
a = 3;
return a;
} finally {
a = 4;
return a;
}
}

解答:
在执行try、catch中的return之前一定会执行finally中的代码(如果finally存在),如果finally中有return语句,就会直接执行finally中的return方法,所以finally中的return语句一定会被执行的
执行流程:finally执行前的代码里面有包含return,则会先确定return返回值,然后再执行c'sfinally的代码,最后再执行return

try-with-resource

有了解新版的JDK处理IO流吗?编写下基础代码, 从⼀个txt⽂文本里面,拷贝里面的内容到另外一个txt文本里面

JDK7之后的写法,JDK9又进行了改良,但是变化不大,记住下面的写法即可
需要关闭的资源只要实现了java.lang.AutoCloseable,就可以⾃自动被关闭
try()里面可以定义多个资源,它们的关闭顺序是最后在try()定义的资源先关闭

try (
FileInputStream fis = new FileInputStream("/Users/xdclass/Desktop/test.txt");
BufferedInputStream bis = new BufferedInputStream(fis);
FileOutputStream fos = new
FileOutputStream("/Users/xdclass/Desktop/copy.txt");
BufferedOutputStream bos = new BufferedOutputStream(fos);
) {
int size;
byte[] buf = new byte[1024];
while ((size = bis.read(buf)) != -1) {
bos.write(buf, 0, size);
}
} catch (Exception e) {
e.printStackTrace();
}

文件API和递归考察

代码编写需求: 找出某目录下的所有子目录以及子文件并打印到控制台上

public static void main(String[] args) {
//找出某目录下的所有子目录以及子文件并打印到控制台上
List paths = new ArrayList<>();
getAllFilePaths(new File("G:\\网盘下载"), paths);
for (String path: paths){
System.out.println(path);
}
}
private static void getAllFilePaths(File filePath, List paths) {
//把该目标所有的目录/文件列出来
File[] files = filePath.listFiles();
if (files == null) {
return;
}
for (File f : files) {
//如果是一个目录
if (f.isDirectory()) {
paths.add(f.getPath());
getAllFilePaths(f, paths);
} else {
paths.add(f.getPath());
}
}
}


推荐阅读
  • 基于事件驱动的并发编程及其消息通信机制的同步与异步、阻塞与非阻塞、IO模型的分类
    本文介绍了基于事件驱动的并发编程中的消息通信机制,包括同步和异步的概念及其区别,阻塞和非阻塞的状态,以及IO模型的分类。同步阻塞IO、同步非阻塞IO、异步阻塞IO和异步非阻塞IO等不同的IO模型被详细解释。这些概念和模型对于理解并发编程中的消息通信和IO操作具有重要意义。 ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • Final关键字的含义及用法详解
    本文详细介绍了Java中final关键字的含义和用法。final关键字可以修饰非抽象类、非抽象类成员方法和变量。final类不能被继承,final类中的方法默认是final的。final方法不能被子类的方法覆盖,但可以被继承。final成员变量表示常量,只能被赋值一次,赋值后值不再改变。文章还讨论了final类和final方法的应用场景,以及使用final方法的两个原因:锁定方法防止修改和提高执行效率。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 本文介绍了基于c语言的mcs51单片机定时器计数器的应用教程,包括定时器的设置和计数方法,以及中断函数的使用。同时介绍了定时器应用的举例,包括定时器中断函数的编写和频率值的计算方法。主函数中设置了T0模式和T1计数的初值,并开启了T0和T1的中断,最后启动了CPU中断。 ... [详细]
  • 乐视手机S1 Pro发布,声称手机真不卡,外观酷似iPhone
    乐视宣布即将发布乐视手机S1 Pro,搭载虎贲T7510芯片,声称手机真不卡。该手机外观与iPhone 14 Pro相似,采用居中药丸式挖孔屏和方形三摄模组。官方定位该手机为便宜的5G手机,售价预计在千元价位。 ... [详细]
  • 显卡驱动对游戏的影响及其提升效果的研究
    本文研究了显卡驱动对游戏体验的提升效果,通过比较新旧驱动加持下的RTX 2080Ti显卡在游戏体验上的差异。测试平台选择了i9-9900K处理器和索泰RTX 2080Ti玩家力量至尊显卡,以保证数据的准确性。研究结果表明,显卡驱动的更新确实能够带来近乎50%的性能提升,对于提升游戏体验具有重要意义。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 记录一次es集群load过高问题(待更新)
    toptop-H-ppid按shiftp以cpu来排序按shiftm以memory来排序将10进制线程pid转为16进制printf%x\npidjstackjstackP ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
author-avatar
mobiledu2502923007
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有