当前位置: 首页 > news >正文

Java核心类库

Java核心类库

    • Math(☆☆☆)
    • System(☆☆☆)
    • Object(☆☆☆☆)
    • Objects (☆)
    • BigDecimal(☆☆☆☆)
    • 基本类型的包装类(☆☆☆☆☆)
    • 算法(☆☆☆☆☆)
      • 二分查找
      • 冒泡排序
      • 递归
    • Arrays(☆☆☆☆)
    • Date (☆☆☆☆☆)
    • SimpleDateFormat(☆☆☆☆☆)
    • LocalDateTime (☆)
    • Throwable 类(☆☆☆☆)
    • String(☆☆☆☆☆)
    • StringBuilder(☆☆☆)

Math(☆☆☆)

Math的这些方法 都是静态的。 Math的构造方法私有的。 Math是不能创建对象的。

1.public static int abs(int a)		返回参数的绝对值  absolute 绝对的 例:int abs = Math.abs(-10);    //102.public static double ceil(double a)		向上取整  例:double ceil = Math.ceil(10.1);    //11.03.public static double floor(double a)		向下取整例:double floor = Math.floor(10.9);	 //10.04.public static int round(float a)		四舍五入例:long round = Math.round(10.1);    //10long round1 = Math.round(1.9);    //25.public static int max(int a,int b)	返回两个int值中的较大值例:int max = Math.max(10, 20);   //206.public static int min(int a,int b)	返回两个int值中的较小值例:int max = Math.max(10, 20);   //107.public static double pow(double a,double b)   返回a的b次幂的值例:double pow = Math.pow(2, 3);   //88.public static double random()		返回值为double的正值,[0.0,1.0):double a = Math.Random();   //随机一个0.0到1.0之间的小数 int b  = (int)(Math.random()*13)     //[0,13)                                           

System(☆☆☆)

System的这些方法 都是静态的。 System的构造方法私有的。 System是不能创建对象的。

1.public static void exit(int status)	终止当前运行的 Java 虚拟机,非零表示异常终止 2.public static long currentTimeMillis()   返回的是 当前时间 减去1970-1-1 8:00:00的时间差,所换算成的毫秒值。3.arraycopy(Object src , int formIndex , Object dest ,int formIndex1 ,int len );   //arraycopy(数据源数组, 起始索引, 目的地数组, 起始索引, 拷贝个数)

Object(☆☆☆☆)

toString : 类重写了toString, 打印语句就打印toString的内容public class Student /*extends Object*/private String name;private int age;public Student(String name, int age) {this.name = name;this.age = age;}@Override           //重写toString方法public String toString() {return "Student{" +"name='" + name + '\'' +", age=" + age +'}';}}public class Demo {public static void main(String[] args) {Student s = new Student("张三",23);System.out.println(s); //内容System.out.println(s.toString()); //内容}}
equals(); Object 的equals方法是比较的地址。要想让自己定义的类的对象比较内容,就必须重写equals方法 来比较内容:public class Student {private int age;private int score;public Student(int age , int score){this.age = age;this.score = score;}@Overridepublic boolean equals(Object o) {if (this == o) return true;if (o == null || this.getClass() != o.getClass()) return false;Student student = (Student) o;if (age != student.age) return false;return score == student.score;}

Objects (☆)

Object 类的 工具类

工具类 :private 私有构造, 里面全部都是 静态方法。

1.public static String toString(对象)  		 返回参数中对象的字符串表示形式。	2.public static String toString(对象, 默认字符串)  返回对象的字符串表示形式。如果对象为空,那么返回第二个参数.3.public static Boolean isNull(对象)		 判断对象是否为空4.public static Boolean nonNull(对象)		 判断对象是否不为空

BigDecimal(☆☆☆☆)

 System.out.println(0.7+0.1); 	 //0.7999999999999999BigDecimal 可以精准运算小数的加减乘除

BigDecimal的两种构造方法:

1.BigDecimal bd = new BigDecimal(double d);       //   不可以精准运算 :  BigDecimal bd3 = new BigDecimal(1.3);BigDecimal bd4 = new BigDecimal(0.5);2.BigDecimal bd = new BigDecimal(String s);       //   可以精准运算: BigDecimal bd1 = new BigDecimal("0.1");BigDecimal bd2 = new BigDecimal("0.2");

成员方法:

1.public BigDecimal add(另一个BigDecimal对象)       //加法: BigDecimal add = bd1.add(bd2);      //0.32.public BigDecimal subtract (另一个BigDecimal对象)   //减法:BigDecimal subtract = bd1.subtract(bd2);    //-0.13.public BigDecimal multiply (另一个BigDecimal对象)   //乘法:BigDecimal multiply = bd1.multiply(bd2);    //0.024.public BigDecimal divide (另一个BigDecimal对象)    //除法:BigDecimal divide = bd1.divide(bd2);      //0.5
5.public BigDecimal divide (另一个BigDecimal对象,精确几位,舍入模式)     //除法:BigDecimal divide = bd1.divide(bd2, 2, BigDecimal.ROUND_HALF_UP);   //bd1除以bd2,保留2位小数,四舍五入
舍入模式:    //进一法  BigDecimal.ROUND_UP    已过时//去尾法  BigDecimal.ROUND_FLOOR     已过时//四舍五入 BigDecimal.ROUND_HALF_UP     已过时

基本类型的包装类(☆☆☆☆☆)

8种基本类型的包装类:(int和char特殊记,剩余首字母大写)byte			Byteshort			Shortint			Integer(特殊)long			Longfloat			Floatdouble		Doublechar			Character(特殊)Boolean		Boolean

构造方法

Integer in = new Integer(int num);   // (已过时)in 就是100
Integer in1 = new Integer(String num);  // (已过时)in1 就是100
Integer in2 =Integer.valueOf(int num);
Integer in3 =Integer.valueOf(String num); 

自动装箱

Integer inte = 10;    //自动装箱int i = 20;
Integer inte2 = i;     //自动装箱

自动拆箱

Integer in = new Integer("10"); 
int a = in;       //自动拆箱
Integer in = new Integer(10);
int a = in + 10;      //只涉及到了拆箱
Integer in1 = in +10;     // 自动装箱和自动拆箱

基本类型和String之间的转换

int --> StringString s = 100+"";String s1 = Integer.toString(10);String str = String.valueOf(10);
String --> intint a = Integer.parseInt("100"); // 这个地方传入的字符串 必须是 数字形式的字符串,否则就要运行出错了
floatString的转换:float --> StringString s = 100.5f +"";String s1 = Float.toString(100.5f);String str = String.valueOf(100.5f);String --> float float f = Float.parseFloat("100.6");其他的也相同.... //byte b = Byte.parseByte("126"); 
注意:Character 里面没有 parseChar的。。。。

算法(☆☆☆☆☆)

二分查找

前提条件:数组内的元素一定要按照大小顺序排列,如果没有大小顺序,是不能使用二分查找法的二分查找的实现步骤:1,定义两个变量,表示要查找的范围。默认min = 0 , max = 最大索引2,循环查找,但是min <= max3,计算出mid的值4,判断mid位置的元素是否为要查找的元素,如果是直接返回对应索引5,如果要查找的值在mid的左半边,那么min值不变,max = mid -1.继续下次循环查找6,如果要查找的值在mid的右半边,那么max值不变,min = mid + 1.继续下次循环查找7,当 min > max 时,表示要查找的元素在数组中不存在,返回-1.

冒泡排序

概述:1,可以实现数组内容按顺序排序2,一种排序的方式,对要进行排序的数据中相邻的数据进行两两比较,将较大的数据放在后面,依次对所有的数据进行操作,直至所有数据按要求完成排序如果有n个数据进行排序,总共需要比较n-1次每一次比较完毕,下一次的比较就会少一个数据参与

递归

什么是递归递归指的是方法本身自己调用自己递归解决问题的思路把一个复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算递归的注意事项1,递归必须要有出口2,递归每次的参数传递 要去靠近出口3,递归的过程就是 把问题逐渐缩小化的过程,最终涌向出口4,递归的次数不宜过多,否则都会造成内存溢出,大概最大到 18000次左右

Arrays(☆☆☆☆)

Arrays 类的 工具类

工具类 :private 私有构造, 里面全部都是 静态方法。

1,public static String toString(int[] a)     返回指定数组的内容的字符串表示形式例:int [] arr = {3,2,4,6,7};Arrays.toString(arr)          //[3, 2, 4, 6, 7]2,public static void sort(int[] a)         按照数字顺序排列指定的数组Arrays.sort(arr);             //{2,3,4,6,7}3,public static int binarySearch(int[] a, int key)       利用二分查找返回指定元素的索引//1,数组必须有序//2.如果要查找的元素存在,那么返回的是这个元素实际的索引//3.如果要查找的元素不存在,那么返回的是 (-插入点-1)//插入点:如果这个元素在数组中,他应该在哪个索引上

Date (☆☆☆☆☆)

Date类概述

Date代表了一个特定的时间类,精确到毫秒值

构造方法

Date d = new Date();           以当前系统时间创建对象
Date d = new Date(long l)      以指定毫秒值时间创建对象,(毫秒值)

成员方法:

Date d = new Date(); 
1,long time = d.getTime();      //获取时间毫秒值  time是 d这个时间的毫秒值2,d.setTime(long l)       根据传入的毫秒值设置时间

SimpleDateFormat(☆☆☆☆☆)

日期格式化类

构造方法:

SimpleDateFormat sdf = new SimpleDateFormat("日期模板格式");   //常用的日期模板格式"yyyy年MM月dd日 HH:mm:ss""yyyy-MM-dd HH:mm:ss"

格式化 Date —> String

String s = sdf.format(Date d)      将日期对象格式化成字符串例:Date d = new Date();SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String str = sdf.format(d);   //2000-01-01 10:10:10

解析 String—> Date

Date d = sdf.parse(String s);     将字符串日期解析成Date对象例:String str = "2020-1-1";SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Date d = sdf.parse(str);   //Wed Jan 01 00:00:00 CST 2020

LocalDateTime (☆)

jdk8 后加的表示时间的类

构造方法:

public static LocalDateTime now()        获取当前系统时间例:LocalDateTime now = LocalDateTime.now();        //2020-01-01T10:40:37.287public static LocalDateTime of(,,,,,)    使用指定年月日和时分秒初始化一个LocalDateTime对象例:LocalDateTime localDateTime = LocalDateTime.of(2020, 11, 11, 11, 11, 11);   //2020-11-11T11:11:11

获取方法

public int getYear()      获取年例:LocalDateTime localDateTime = LocalDateTime.of(2020, 11, 12, 13, 14, 20);int year = localDateTime.getYear();      //2020public int getMonthValue()     获取月份(1-12)例:int month = localDateTime.getMonthValue();    //11Month month1 = localDateTime.getMonth();     //NOVEMBERpublic int getDayOfMonth()     获取月份中的第几天(1-31)例:int day = localDateTime.getDayOfMonth();   //12public int getDayOfYear()     获取一年中的第几天(1-366int dayOfYear = localDateTime.getDayOfYear();    //317public DayOfWeek getDayOfWeek()      获取星期DayOfWeek dayOfWeek = localDateTime.getDayOfWeek();     //THURSDAYpublic int getMinute()       获取分钟int minute = localDateTime.getMinute();        //14public int getHour()       获取小时int hour = localDateTime.getHour();        //13

转换方法:

public LocalDate toLocalDate ()       转换成为一个LocalDate对象,只表示 年月日例:LocalDate localDate = localDateTime.toLocalDate();      //2020-11-12public LocalTime toLocalTime ()       转换成为一个LocalTime对象,只表示 时分秒例:LocalTime localTime = localDateTime.toLocalTime();      //13:14:20

格式化和解析:

LocalDateTime ---> Stringpublic String format (指定格式) 	把一个LocalDateTime格式化成为一个字符串 指定格式传DateTimeFormatter格式参数例:DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");String s = localDateTime.format(pattern);    //2021年11月12日 13:14:20String ---> LocalDateTimepublic LocalDateTime parse (准备解析的字符串, 解析格式)		把一个日期字符串解析成为一个LocalDateTime对象例:String s = "2020年11月12日 13:14:15";DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");LocalDateTime parse = LocalDateTime.parse(s, pattern);  //2020-11-12T13:14:15public static DateTimeFormatter ofPattern(String s) 格式对象,以便给DateTimeFormatter传参 ()里是格式

增加或者减少时间的方法(plus):

1,public LocalDateTime plusYears (long years)   添加或者减去年例:LocalDateTime newLocalDateTime = localDateTime.plusYears(1);   //2022-11-12T13:14:20LocalDateTime newLocalDateTime = localDateTime.plusYears(-1);  //2020-11-12T13:14:202,public LocalDateTime plusMonths(long months)  添加或者减去月3,public LocalDateTime plusDays(long days)  添加或者减去日4,public LocalDateTime plusHours(long hours)  添加或者减去时5,public LocalDateTime plusMinutes(long minutes)  添加或者减去分6,public LocalDateTime plusSeconds(long seconds)  添加或者减去秒7,public LocalDateTime plusWeeks(long weeks)  添加或者减去周

减少或者增加时间的方法(minus):

1,public LocalDateTime minusYears (long years)   减去或者添加年例:LocalDateTime newLocalDateTime = localDateTime.minusYears(1);    //2020-11-12T13:14:20LocalDateTime newLocalDateTime = localDateTime.minusYears(-1);    //2022-11-12T13:14:202,public LocalDateTime  minusYears (long years)   减去或者添加年3,public LocalDateTime  minusMonths(long months)   减去或者添加月4,public LocalDateTime minusDays(long days)   减去或者添加日5,public LocalDateTime minusHours(long hours)   减去或者添加时6,public LocalDateTime minusMinutes(long minutes)  减去或者添加分7,public LocalDateTime minusSeconds(long seconds)  减去或者添加秒8,public LocalDateTime minusWeeks(long weeks)   减去或者添加周	   

修改方法(with):

1,public LocalDateTime withYear(int year)       直接修改年2,public LocalDateTime withMonth(int month)      直接修改月3,public LocalDateTime withDayOfMonth(int dayofmonth)      直接修改日期(一个月中的第几天)4,public LocalDateTime withDayOfYear(int dayOfYear)     直接修改日期(一年中的第几天)  5,public LocalDateTime withHour(int hour)     直接修改小时6,public LocalDateTime withMinute(int minute)      直接修改分钟7,public LocalDateTime withSecond(int second)      直接修改秒

时间间隔(Period :年月日)

public static Period between(开始时间,结束时间)  计算两个"时间"的间隔,传入LocalDate参数对象LocalDate localDate1 = LocalDate.of(2020, 1, 1);LocalDate localDate2 = LocalDate.of(2048, 12, 12);Period period = Period.between(localDate1, localDate2);System.out.println(period);   //P28Y11M11Dpublic int getYears()         获得这段时间的年数System.out.println(period.getYears());  //28public int getMonths()        获得此期间的月数System.out.println(period.getMonths());  //11public int getDays()          获得此期间的天数System.out.println(period.getDays());  //11public long toTotalMonths()   获取此期间的总月数System.out.println(period.toTotalMonths());  //347Period 不能获取总天数, 因为在这两时间之内  每个月份是有31天和302928天之分的。// 要想获取 时间间隔天数 请用下面的Duration

时间间隔(Duration: 年月日时分秒)

public static Duration between(开始时间,结束时间)  计算两个“时间"的间隔LocalDateTime localDateTime1 = LocalDateTime.of(2020, 1, 1, 13, 14, 15);LocalDateTime localDateTime2 = LocalDateTime.of(2020, 1, 2, 11, 12, 13);Duration duration = Duration.between(localDateTime1, localDateTime2);System.out.println(duration);  //PT21H57M58Spublic long toSeconds()	       获得此时间间隔的秒System.out.println(duration.toSeconds());  //79078public long toMillis()	           获得此时间间隔的毫秒System.out.println(duration.toMillis());  //79078000public long toNanos()             获得此时间间隔的纳秒System.out.println(duration.toNanos());   //79078000000000// 获取此事件间隔的天数System.out.println(duration.toDays());	

Throwable 类(☆☆☆☆)

异常的概述 :  指的是程序出现了不正常的情况

异常的体系结构:

Throwable Error(问题严重,不需要处理)Exception(异常类,程序本身可以处理的问题)RuntimeException(运行时异常,编译的时候不报错)非RuntimeException(编译期异常,编译的时候就会报出红线,目的是为了让你检查程序,用throws抛出即可)

RuntimeException运行期异常处理:

运行期异常的trycatch处理方式:当出现了问题之后 给这个用户一个温馨的提示,并且做到让后续的代码继续执行(程序不崩溃)trycatch处理方式标准格式try{可能会出现异常的代码}catch(异常类型 对象名) {处理方式}
Throwable的三个方法:	try {/*String s = null;boolean aa = s.equals("aa");*/int[] arr = {1};System.out.println(arr[100]);   // 向外扔出一个异常  new ArrayIndexOutOfBoundsException(100+"");} catch (Exception e) {System.out.println(e.toString()); //java.lang.ArrayIndexOutOfBoundsException: 100System.out.println("------------");System.out.println(e.getMessage());  //100System.out.println("------------");e.printStackTrace();/*java.lang.ArrayIndexOutOfBoundsException: 100at com.suihao.Demo10.main(Demo10.java:9)*/}运行期异常的Throws处理方式:没有任何用处。  Throws的处理方式 并不是针对运行期异常而产生的。因为 运行期异常 不管你throws 还是不throws  都是一摸一样的。 没有任何差别。

String(☆☆☆☆☆)

构造方法

1, String s = "abc";         //直接赋值2, String s = new String();       //等同于String s1 = "";  3, String s = new String("abc");     //等同于14, String s = new String(char[] chars);     //传入char数组5 ,String s = new String(char[] chars,int index,int count);	//根据传入的字符数组和指定范围个数来创建一个字符串对象5, String s = new String(byte[] bytes)      //传入byte数组6, String s = new String(byte[] bytes,int index,int count);  //根据传入的字节数组和指定范围个数来创建一个字符串对象7,  String s = new String(StringBuilder builder)      //传入StringBuilder对象

成员方法

获取功能:1, int length();		 获取字符串的长度2, String concat(String str);		 拼接字符串,并返回新字符串3, char charAt(int index);		 获取指定索引处的字符4, int indexOf(String str);		 获取传入的字符串在整个字符串中第一次出现的索引位置5, int lastIndexOf(String str);		 获取传入的字符串在整个字符串中最后一次出现的索引位置6, String substring(int index);		 从指定索引处开始截取,默认到结尾7, String substring(int start,int end);	    	截取指定索引范围的字符串。(包含开始索引、不包含结束索引)8, static String valueOf (参数);  可传: (int i) (long l) (float f) (double d) (char c) (boolean b) (char[]ch)// 返回 各自 参数的字符串表示形式。
判断功能:1, boolean equals(String str);				比较两个字符串内容是否相同,区分大小写2, boolean equalsIgnoreCase(String str);	比较两个字符串内容是否相同,不区分大小写3, boolean startsWith(String str);			判断整个字符串是否以传入的字符串为开头4, boolean endsWith(String str);			判断整个字符串是否以传入的字符串为结尾5, boolean contains(String str);			判断整个字符串中是否包含传入的字符串6, boolean isEmpty();						判断字符串是否为空
转换功能:1, char[] toCharArray();					将字符串转成字符数组2, byte[] getBytes();						将字符串转成字节数组3, String replace(String oldS,String newS);用新字符串替换老字符串4, String toUpperCase();					将字符串转成大写并返回5, String toLowerCase();					将字符串转成小写并返回
其他功能:1, String[] split(String regex);			根据指定规则进行切割字符串2, String trim();							去掉字符串两端的空白

StringBuilder(☆☆☆)

作用: 主要是为了用来拼接字符串的

构造方法:

StringBuilder()  创建一个内容为空的字符串缓冲区对象  StringBuilder(String str)  根据字符串的内容来创建字符串缓冲区对象

成员方法:

StringBuilder append(任意类型);  向缓冲区中追加数据  StringBuilder reverse();  将缓冲区的内容反转  String toString();  将缓冲区的内容转成字符串  int length();  获取缓冲区的长度

两者转换:

String s = "abc123";
StringBulider sb = new StringBulider(s);String s1 = sb.toString;

相关文章:

Java核心类库

Java核心类库类Math(☆☆☆)System(☆☆☆)Object(☆☆☆☆)Objects (☆)BigDecimal(☆☆☆☆)基本类型的包装类(☆☆☆☆☆)算法(☆☆☆☆☆)二分查找冒泡排序递归Arrays(☆☆☆☆)Date (☆☆☆☆☆)SimpleDateFormat(☆☆☆☆☆)LocalDateTime (☆)Throwable 类(☆☆☆☆)Str…...

1110道Java面试题及答案(最新Java初级面试题大汇总)

开篇小叙 现在 Java 面试可以说是老生常谈的一个问题了&#xff0c;确实也是这么回事。面试题、面试宝典、面试手册......各种 Java 面试题一搜一大把&#xff0c;根本看不完&#xff0c;也看不过来&#xff0c;而且每份面试资料也都觉得 Nice&#xff0c;然后就开启了收藏之路…...

DML 添加、修改、删除数据

目录 DML 一、添加数据 1、给指定字段添加数据 2、给全部字段添加数据 3、批量添加数据 二、修改数据 三、删除数据 DML DML英文全称是Data Manipulation Language(数据操作语言)&#xff0c;用来对数据库中表的数据记录进行增、删、改操作。 一、添加数据 1、给指定字…...

千川投放50问(完)!如何跑出高投产?

第四十一问&#xff1a;计划初期成本很高&#xff0c;是否要关掉重新跑&#xff1f;首先看一下是不是初期回传延迟导致的成本偏高。如果成本没有高的&#xff0c;不建议暂停&#xff0c;先观察一段时间数据&#xff0c;给它一点学习时间。当系统积累过足够的模型之后&#xff0…...

每日学术速递3.10

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.RO 1.Diffusion Policy: Visuomotor Policy Learning via Action Diffusion 标题&#xff1a;扩散策略&#xff1a;通过动作扩散进行视觉运动策略学习 作者&#xff1a;Cheng Chi, Si…...

[C/C++]_[初级]_[声明和使用字符串常量和字节常量]

场景 我们需要存储常量的字节数组&#xff0c;并且数组里的字节数据可以是任意数值0-255。怎么存储&#xff1f; 说明 任意字节数组可以使用char或者unsigned char作为数据类型。比如以下的字符串声明。这种字符串数据可以通过strlen(buf)来计算它的长度&#xff0c;它会遇到…...

解Bug之路-Nginx 502 Bad Gateway

前言 事实证明&#xff0c;读过Linux内核源码确实有很大的好处&#xff0c;尤其在处理问题的时刻。当你看到报错的那一瞬间&#xff0c;就能把现象/原因/以及解决方案一股脑的在脑中闪现。甚至一些边边角角的现象都能很快的反应过来是为何。笔者读过一些Linux TCP协议栈的源码…...

目标检测 pytorch复现R-CNN目标检测项目

目标检测 pytorch复现R-CNN目标检测项目1、R-CNN目标检测项目基本流程思路2、项目实现1 、数据集下载&#xff1a;2、车辆数据集抽取3、创建分类器数据集3、微调二分类网络模型4、分类器训练5、边界框回归器训练6、效果测试目标检测 R-CNN论文详细讲解1、R-CNN目标检测项目基本…...

荧光染料IR-825 NHS,IR825 NHS ester,IR825 SE,IR-825 活性酯

IR825 NHS理论分析&#xff1a;中文名&#xff1a;新吲哚菁绿-琥珀酰亚胺酯&#xff0c;IR-825 琥珀酰亚胺酯&#xff0c;IR-825 活性酯英文名&#xff1a;IR825 NHS&#xff0c;IR-825 NHS&#xff0c;IR825 NHS ester&#xff0c;IR825 SECAS号&#xff1a;N/AIR825 NHS产品详…...

利用Postman的简单运用解决小问题的过程

这几天在修改一个前后端分离的商城项目。项目前端向后端发出数据请求之后&#xff0c;收到的却是504网关超时错误。 但是控制台却不止报错了网关超时&#xff0c;还有跨域请求的问题&#xff1a; 根本搞不清是哪个问题导致了另外一个问题还是独立的两个问题。 直接点击网址访…...

【C语言】8道经典指针笔试题(深度解剖)

上一篇我们也介绍了指针的笔试题&#xff0c;这一篇我们趁热打铁继续讲解8道指针更有趣的笔试题&#xff0c;&#xff0c;让大家更加深刻了解指针&#xff0c;从而也拿下【C语言】指针这个难点! 本次解析是在x86&#xff08;32位&#xff09;平台下进行 文章目录所需储备知识笔…...

操作系统内核与安全分析课程笔记【2】进程管理与调度

文章目录基本概念与关键数据结构进程管理进程生命周期进程的关系进程家族树线程组进程组与会话进程的创建与终止Linux中的线程基本概念与关键数据结构 进程&#xff1a;静态的&#xff0c;存储在磁盘上的代码与数据。 程序&#xff1a;动态的&#xff0c;执行程序的动态过程&am…...

看完书上的栈不过瘾,为什么不动手试试呢?

一.栈的基本概念1.栈的定义栈&#xff08;Stack&#xff09;&#xff1a;是只允许在一端进行插入或删除的线性表。首先栈是一种线性表&#xff0c;但限定这种线性表只能在某一端进行插入和删除操作。其中注意几点&#xff1a;栈顶&#xff08;Top&#xff09;&#xff1a;线性表…...

AbstractQueuedSynchronizer从入门到踹门

概念设计初衷&#xff1a;该类利用 状态队列 实现了一个同步器&#xff0c;更多的是提供一些模板方法&#xff08;子类必须重写&#xff0c;不然会抛错&#xff09;。 设计功能&#xff1a;独占、共享模式两个核心&#xff0c;state、Queue2.1 statesetState、compareAndSetSta…...

【项目实战】手把手教你Dubbo微服务架构中整合熔断限流组件Sentinel

一、背景 项目中需要引入Sentinel来实现限流,但是项目是基于Dubbo的微服务架构,我们都知道Sentinel是属于SpringCloudAlibaba组件下的限流中间件,基于Dubbo的微服务架构真的能够引入 Sentinel吗?带着疑惑的心情,实践了一把~ 二、使用说明 2.1 引入依赖文件 <!-- Se…...

图像主题颜色提取(Median cut)

前言 之前想对图片素材进行分类管理&#xff0c;除了打标签&#xff0c;还有一样是通过主题色进行分类。于是开始寻找能提取主主题色的工具&#xff0c;最后找到了大名鼎鼎的 Leptonica 库&#xff0c;其中就有中位切割算法的实现。下面附上中位切割算法的其它语言版本的实现。…...

Python 分支结构

Python 分支结构 应用场景 迄今为止&#xff0c;我们写的Python代码都是一条一条语句顺序执行&#xff0c;这种代码结构通常称之为顺序结构。然而仅有顺序结构并不能解决所有的问题&#xff0c;比如我们设计一个游戏&#xff0c;游戏第一关的通关条件是玩家获得1000分&#x…...

【C++知识点】文件操作

✍个人博客&#xff1a;https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 &#x1f4da;专栏地址&#xff1a;C/C知识点 &#x1f4e3;专栏定位&#xff1a;整理一下 C 相关的知识点&#xff0c;供大家学习参考~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;…...

VBA小模板,跨表统计的2种写法

目标 1 统计一个excel 文件里&#xff0c;多个sheet里的内容2 有的统计需求是&#xff0c;每个表只单表统计&#xff0c;只是进行批量操作3 有的需求是&#xff0c;多个表得某些行列累加等造出来得文件 2 实现方法1 &#xff08;可能只适合VBAEXCEL&#xff0c;不太干净的写法…...

部署问题 | 百度LAC安装部署清单

本项目实现基于LAC提供RESTAPI服务的最小化方案。 依赖&#xff1a; python-3.9.9 百度lac2.X fastAPI uvicorn 首先下载并安装python&#xff0c;本人选择3.9版本。 依次安装&#xff1a; 安装 vc vc_redist.x64.exe 64位&#xff1a;https://download.microsoft.com/…...

提高办公效率的免费网站有哪些

收藏一些免费好用的网站&#xff0c;在我们工作中需要用到的时候可以直接使用&#xff0c;提高我们的工作效率。小编就和大家分享10个可以提高我们办公效率的免费网站。 1.羽兔网软件下载-以设计类软件为主的免费软件下载网站 很多小白都不知道怎么下载软件&#xff0c;往往搜…...

前端开发者需要掌握的具体内容和步骤

第一部分:前端开发实践 前端的工作职称 下面是一个前端开发者在职业发展中各种职称的描述列表. 对于前端开发者最普遍的职称是 "前端开发者" 或者 "前端工程师", 可以根据任何包含 "前端", "客户端", "web UI", "CS…...

杨校老师课堂之基于File类的文件管理器

在日常工作中&#xff0c;经常会遇到批量操作系统文件的事情&#xff0c;通常情况下&#xff0c;只能手动重复的完成批量文件的操作&#xff0c;这样很是费时费力。 本案例要求编写一个文件管理器&#xff0c;实现文件的批量操作。 文件管理器具体功能要求如下&#xff1a; 用…...

java面试算法汇总-数组

数组 [程序一] 两数之和 &#xff1a;给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 class Solution {public int[] twoSum(int[] nums, int target) {Map<Integer,…...

Docker-Mysql主从复制

步骤 1、新建主服务器容器实例3307 docker run -d -p 3307:3306 --privileged=true -v /tmp/mysql_master/log:/var/log/mysql -v /tmp/mysql_master/data:/var/lib/mysql -v /tmp/mysql_master/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=root --name mysql-master mys…...

(模拟)1241. 外卖店优先级

目录 题目链接 一些话 流程 套路 ac代码 题目链接 1241. 外卖店优先级 - AcWing题库 一些话 流程 // // 每经过 1 // 个时间单位&#xff0c;如果外卖店没有订单&#xff0c;则优先级会减少 1 // &#xff0c;最低减到 0 // &#xff1b;而如果外卖店有订单&#xff0c;则…...

Linux进程学习【进程地址】

✨个人主页&#xff1a; Yohifo &#x1f389;所属专栏&#xff1a; Linux学习之旅 &#x1f38a;每篇一句&#xff1a; 图片来源 &#x1f383;操作环境&#xff1a; CentOS 7.6 阿里云远程服务器 Perseverance is not a long race; it is many short races one after another…...

系统调用——文件操作相关函数

1.open open, creat - open and possibly create a file or device 打开一个文件&#xff0c;也可能创建一个文件&#xff0c;返回文件描述符 //头文件 #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> //接口 int open(const char *pa…...

做互联网自媒体创业的月薪收入真的能过万吗?

搞自媒体创业有前途吗&#xff1f;收入月薪过万是真的吗&#xff1f; 自媒体创业是一种新兴的创业方法&#xff0c;它的远景十分广阔。自媒体创业能够让人们在自己的兴趣爱好和专业范畴上发挥自己的才能&#xff0c;一起也能够获得不错的收入。可是&#xff0c;月薪过万并不是…...

Kubernetes (k8s) 污点(Taint)、容忍介绍、示例

Kubernetes (k8s) 污点&#xff08;Taint&#xff09; 是一种机制&#xff0c;用于标记一个节点&#xff08;Node&#xff09;不可被调度的状态。它可以将一个污点标记添加到节点上&#xff0c;以防止 Pod 被调度到该节点上。污点可以用于实现各种策略&#xff0c;例如分离故障…...

多团队协作构建可观测性

实施 SRE 工程&#xff0c;守护系统的可靠性是一个⻓期的工作&#xff0c;需要开发、测试、运维以及 SRE 整个团队的努力。而可观测性平台天生就是为 SRE 工程服务的&#xff0c;它致力于实现 SLO 目标。建立可观测性不仅仅是运维团队的事情&#xff0c;更是整个开发、测试以及…...

100种思维模型之认知资源思维模型-030

我们常说&#xff0c;一个人永远也赚不到自己认知以外的钱&#xff0c;这话的确很有道理&#xff0c;被无数人所推崇。 由此&#xff0c;不难看出&#xff0c;认知在我们的生活起着多么关键的作用。 你的认知层次越高&#xff0c;范围越广&#xff0c;就意味着你这个人所处的阶…...

c/cpp - 多线程/进程 基础

c/cpp - 多线程/进程 基础1. 概念1.1 程序1.2 任务1.3 多任务1.4 进程1.5 线程1.5 线程/进程应用程序/系统资源并发/并行/同步/异步1. 概念 1.1 程序 代码、指令&#xff0c;静态的 1.2 任务 具体要做的实景&#xff0c;可以是基于进程、或基于线程 1.3 多任务 例如&#xff1…...

第55章 头像图片的前端渲染显示

1 WebApi.Controllers.CustomerController.GetCustomerByToken /// <param name"token">1个指定的令牌字符串。</param> /// <summary> /// 【通过令牌获取用户-无需权限】 /// </summary> /// <remarks> /// 摘要&#xff1a; /// …...

vue2 使用 cesium 【第二篇-相机视角移动+添加模型】

vue2 使用 cesium 【第二篇-相机视角移动添加模型】 搞了一阵子 cesium&#xff0c;小白入门&#xff0c;这东西很牛逼&#xff0c;但是感觉这东西好费劲啊&#xff01;网上资料不多&#xff0c;每个人的用法又不一样&#xff0c;操作起来真的是绝绝子。之前写了一篇 vue2 使用…...

C/C++ 操作ini文件(SinpleIni 跨平台库)

最近在学习时&#xff0c;发现自己还不会操作ini文件&#xff0c;想着以前工作时接触到的项目或多或少都要用到ini文件去保存初始化程序的数据&#xff1b;所以赶紧去网上搜索以下C/C操作ini文件都有些什么库可以玩玩&#xff1b;搜索到有&#xff1a; 1. inih&#xff1a;这是…...

Cadence Allegro 导出Design Rules Check(DRC)Report报告详解

⏪《上一篇》   🏡《上级目录》   ⏩《下一篇》 目录 1,概述2,Design Rules Check(DRC)Report作用3,Design Rules Check(DRC)Report示例4,Design Rules Check(DRC)Report导出方法4.1,方法14.2,方法2B站关注“硬小...

Java的stream流

Java 8中引入的新特性&#xff0c;stream流通过与Lambda表达式结合&#xff0c;采用函数式编程&#xff0c;简化数组、集合操作&#xff0c;提高效率。 我们操作一个集合&#xff0c;就把他看作一个流&#xff0c;整个流依次执行&#xff0c;&#xff08;可以类比为一个管道&a…...

Mybatis_相关配置解析和ResultMap

目录配置解析核心配置文件mybatis-config.xml 系统核心配置文件environments元素子元素节点&#xff1a;environmentmappers元素Mapper文件Properties优化typeAliases优化その他生命周期和作用域&#xff08;Scope&#xff09;方法作用域应用作用域方法作用域ResultMap提出问题…...

Python量化入门:利用中长期RSI寻找趋势拐点,抓大放小,蹲一个大机会!

一、RSI的原理 1. RSI简介 股票的涨跌说白了就是多空博弈造成的,多方力量更强则股票价格上涨,空方力量更强则股票价格下跌。那么我们如何来衡量股票的多空力量强弱呢? 上个世纪70年代,威尔斯威尔得发表了相对强弱指标,即我们常说的RSI(Relative Strength Index),RSI…...

案例14-代码结构逻辑混乱,页面设计不美观

目录 目录 一&#xff1a;背景介绍 二&#xff1a;思路&方案 三&#xff1a;过程 问题1&#xff1a;代码可读性差&#xff0c;代码结构混乱 问题2&#xff1a; 代码逻辑混乱&#xff0c;缺乏封装的意识 问题3&#xff1a;美观问题&#xff1a;问题和图标没有对应上 四…...

弱监督参考图像分割:Learning From Box Annotations for Referring Image Segmentation论文阅读笔记

弱监督参考图像分割&#xff1a;Learning From Box Annotations for Referring Image Segmentation论文阅读笔记一、Abstract二、引言三、相关工作A、全监督参考图像分割B、基于 Box 的实例分割C、带有噪声标签的学习四、提出的方法A、概述B、伪标签生成目标轮廓预测Proposal 选…...

Linux进程和任务管理和分析和排查系统故障

♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a;小刘主页 ♥️每天分享云计算网络运维课堂笔记&#xff0c;努力不一定有收获&#xff0c;但一定会有收获加油&#xff01;一起努力&#xff0c;共赴美好人生&#xff01; ♥️夕阳下&#xff0c;是最美的绽放&#xff0…...

【满分】【华为OD机试真题2023 JAVA】最多几个直角三角形

华为OD机试真题,2023年度机试题库全覆盖,刷题指南点这里 最多几个直角三角形 知识点递归深搜 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: 有N条线段,长度分别为a[1]-a[N]。现要求你计算这N条线段最多可以组合成几个直角三角形,每条线段只能使用一次,每个三…...

PyQt5可视化 7 饼图和柱状图实操案例 ②建表建项目改布局

目录 一、数据库建表 1 建表 2 插入数据 3 查看表数据 二、建立项目 1 新建项目 2 appMain.py 3 myMainWindow.py 4 myChartView.py 2.4.1 提升的后果 2.4.2 QmyChartView类说明 2.4.3 添加代码 三、修改myMainWindow.py程序&#xff0c;添加功能 1 打开数据库 …...

sonarqube指标详解

最近公司引入了sonar&#xff0c;作为代码质量检测工具&#xff0c;以期提高研发同学的代码质量&#xff0c;但是结果出来后&#xff0c;有些同学不清楚相应的指标内容&#xff0c;不知道应该重点关注哪些指标&#xff0c;于是查询了一下相关的资料&#xff0c;加以总结同时也分…...

耳机 喇叭接线分析

1 注意 1 首先必须接地 2 接某一个声道 2 分析 从三段式耳机结构可以得出&#xff1a; 模拟数据 必须的 结构 1 地 2 左or右信号 附加 我们要注意 耳机也是分左声道 右声道的 参考&#xff1a;耳机插头3.5与2.5三段与四段i版与n版等详解 在iPhone还没现在这么NB的时候&a…...

SpaceNet 建筑物检测

SpaceNet 建筑物检测 该存储库提供了一些 python 脚本和 jupyter 笔记本来训练和评估从SpaceNet卫星图像中提取建筑物的卷积神经网络。 用法...

蓝桥杯刷题第六天

第一题&#xff1a;星期计算问题描述本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。已知今天是星期六&#xff0c;请问 20的22次方天后是星期几?注意用数字 1 到 7 表示星期一到星期日。运行限制最大运行时间&#xff1a;1s最…...

Linux C++ 多线程高并发服务器实战项目一

文章目录1、项目介绍2、项目流程2.1、环境变量搬家2.2、设置进程title2.3、信号初始化2.4、开始监听端口2.5、创建守护进程2.6、创建子进程1、项目介绍 1、按照包头包体的格式收发数据包&#xff0c;解决粘包的问题 2、非常完整的多线程高并发服务器 3、根据收到数据包执行&…...