2024年网络安全最全JavaSE基础
网络安全:密码学基础和安全编程 #生活知识# #编程教程#
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化资料的朋友,可以点击这里获取
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
例如:项目名:writetest 包名:com.cai.test 类名:TestDemo
五、常量&变量
常量:程序运行过程中不会改变的量。(字符 ‘b’、字符串 ‘abc’、整数 1、布尔 true|false)
变量:运行过程中可以改变的量。(局部变量、类变量(静态变量)、成员变量(非静态变量))
作用域 : 从定义变量的一行开始,一直到直接所属的大括号结束。
自动类型转换(隐式):代码不需要进行特殊处理,自动完成,小到大
long num1 = 2021112; 12
强制类型转换(显式):代码需要进行特殊的格式处理,不能自动完成,大到小
int num=(int)2021112; 12
注意:
1.强制类型转换有可能发生精度损失、数据溢出。2.byte / short / char这三种类型都可以发生数学运算,例如加法“+”.3.byte/short/char这三种类型在运算的时候,都会被首先向上提升成为int类型,然后再计算。符合ASCII编码表。六、运算符&表达式
算术运算符:常见的四则运算符、自增、自减,它们的作用和在数学中的作用一样。
运算符描述例子+加1+1-2*减2-1=1*乘2*5=10/除10/2=5++自增int a=1;a++ or ++a =2–自减int a=1;–a or a-- =0%取余 - 左操作数除以右操作数的余数24%=3实例:
public class Test1{ public static void main(String[] args){ int a = 3; int b = 3; int x = 2\*++a; int y = 2\*b++; System.out.println("自增运算符前缀运算后a="+a+",x="+x); System.out.println("自增运算符后缀运算后b="+b+",y="+y); } } 123456789101112
结果:
自增运算符前缀运算后a=4,x=8 自增运算符后缀运算后b=4,y=6 123 关系运算符
关系运算符:关系运算符有6种关系,分别为小于、大于、小于等于、大于等于、等于、不等于。比较的结果是一个布尔值( true 或 false )。
运算符描述例子结果>大于2>1true>=大于等于2>=1true<小于2<1false<=小于等于2<=1true==等于2==1false!=不等于2!=1true 逻辑运算符逻辑运算符:主要用于进行逻辑运算,连接两个Boolean值,代表两个条件。
假设布尔变量A为真,变量B为假
运算符描述例子结果&&与(A && B)falseII或(AIIB)true!非!(A && B)true^异或2<=1(A ^ B)异或:有且只能有一个为true
实例:
public class Test2 { public static void main(String[] args) { boolean a = true; boolean b = false; System.out.println("a && b = " + (a&&b)); System.out.println("a || b = " + (a||b) ); System.out.println("!(a && b) = " + !(a && b)); System.out.println("(a^b) = " + (a ^ b)); } } 1234567891011
结果:
a && b = false a || b = true !(a && b) = true (a^b) = true 12345 赋值运算符
赋值运算符:基本的赋值运算符是“=”。他的优先级别低于其他的运算符,所以对该运算符往往最后读取。
运算符描述例子结果=简单的赋值运算符,将右操作数的值赋给左侧操作数C = A + B将把A + B得到的值赋给C+ =加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数C + = A等价于C = C + A- =减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数C - = A等价于C = C - A* =乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数C * = A等价于C = C * A/ =除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数C / = AC 与 A 同类型时等价于 C = C / A(%)= 取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数<< =左移位赋值运算符C << = 2等价于C = C << 2>> =右移位赋值运算符C >> = 2等价于C = C >> 2&=按位与赋值运算符C&= 2等价于C = C&2^ =按位异或赋值操作符C ^ = 2等价于C = C ^ 2I=按位或赋值操作符C I= 2等价于C = C I2 位运算符位运算符:位操作是程序设计中对位模式按位或二进制数的一元和二元操作。在许多古老的微处理器上, 位运算比加减运算略快, 通常位运算比乘除法运算要快很多。
运算符描述例子结果&如果相对应位都是1,则结果为1,否则为0(A&B)-得到12,即0000 1100I如果相对应位都是 0,则结果为 0,否则为 1- (AB)^-如果相对应位值相同,则结果为0,否则为1-(A ^ B)-得到49,即 0011 0001〜-按位取反运算符翻转操作数的每一位,即0变成1,1变成0。-(〜A)-得到-61,即1100 0011<<-按位左移运算符。左操作数按位左移右操作数指定的位数-A << 2-得到240,即 1111 0000>>-按位右移运算符。左操作数按位右移右操作数指定的位数-A >> 2-得到15即 1111>>>-按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充- A>>>2-得到15即0000 1111实例:
//来源https://www.runoob.com/java/java-operators.html public class Test2 { public static void main(String[] args) { int a = 60; /\* 60 = 0011 1100 \*/ int b = 13; /\* 13 = 0000 1101 \*/ int c = 0; c = a & b; /\* 12 = 0000 1100 \*/ System.out.println("a & b = " + c ); c = a | b; /\* 61 = 0011 1101 \*/ System.out.println("a | b = " + c ); c = a ^ b; /\* 49 = 0011 0001 \*/ System.out.println("a ^ b = " + c ); c = ~a; /\*-61 = 1100 0011 \*/ System.out.println("~a = " + c ); c = a << 2; /\* 240 = 1111 0000 \*/ System.out.println("a << 2 = " + c ); c = a >> 2; /\* 15 = 1111 \*/ System.out.println("a >> 2 = " + c ); c = a >>> 2; /\* 15 = 0000 1111 \*/ System.out.println("a >>> 2 = " + c ); }}
1234567891011121314151617181920212223242526272829结果:
a & b = 12 a | b = 61 a ^ b = 49 ~a = -61 a << 2 = 240 a >> 2 = 15 a >>> 2 = 15 123456789 其他运算符
条件运算符(?:):件运算符也被称为三元运算符。该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量。
实例:
public class Test3 { public static void main(String[] args) { //x ? y : z //如果x==true,则结果为y,否则结果为z int score = 80; String type = score < 60 ? "不及格":"及格";//必须掌握 //if System.out.println(type); // System.out.println(type); int score1 = 50; String type1 = score < 60 ? "不及格":"及格"; //必须掌握 //if System.out.println(type1); } }
12345678910111213141516结果:
及格 及格 123
instanceof 运算符:该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。
实例:
String name = "Test"; boolean result = name instanceof String; // 由于 name 是 String 类型,所以返回真 123 表达式
表达式:用运算符连起来的式子叫做表达式。由数字、算符、数字分组符号(括号)、自由变量和约束变量等以能求得数值的有意义排列方法所得的组合。例如:20+5 。 又例如:a+b
在java中 以 ;结尾的一段代码,即为一个表达式
public class HelloWorld { public static void main(String[] args) { //每一句话都是一个表达式 int i = 5; //① System.out.println(5); //② ; //③ ; //④ ; //⑤ } } 123456789101112
七、数组
数组(array)是一种最简单的复合数据类型,它是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和不同的下标来确定数组中唯一的元素。根据数组的维度,可以将其分为一维数组、二维数组和多维数组等。
实例:
public class Test4 {public static void main(String args[]) {int data[] = new int[3]; /\*开辟了一个长度为3的数组\*/data[0] = 10; // 第一个元素data[1] = 30; // 第二个元素data[2] = 50; // 第三个元素for(int x = 0; x < data.length; x++) {System.out.println(data[x]); //通过循环控制索引}} } 123456789101112
结果:
10 30 50 1234
三种方法定义Java数组:
1.先声明 2.分配空间 3.赋值1.声明并分配空间 2.赋值1.声明并分配空间然后.赋值实例:
public class Test5{public static void main(String args[]) {System.out.println("-----方法一-----"); int[] arr; //先声明 arr=new int[5]; //分配空间 for(int i=0;i<5;i++)arr[i]=i\*10; //赋值 for(int i=0;i<5;i++){ System.out.println("arr["+i+"]="+arr[i]); } System.out.println("-----方法二-----"); int[] arr1=new int[5]; //声明并分配空间 for(int i=0;i<5;i++)arr1[i]=i\*10; //赋值 for(int i=0;i<5;i++){ System.out.println("arr["+i+"]="+arr1[i]); } System.out.println("-----方法三-----"); int[] arr2={20,68,34,22,34}; //声明并分配空间然后.赋值 等同于 int[] arr= new []{20,68,34,22,34}; for(int i=0;i<5;i++){System.out.println("arr["+i+"]="+arr2[i]);}} }
1234567891011121314151617181920212223242526结果:
还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包! 王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!如果你能答对70%,找一个安全工作,问题不大。 对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料! 【完整版领取方式在文末!!】 ***93道网络安全面试题*** ![](https://img-blog.csdnimg.cn/img_convert/6679c89ccd849f9504c48bb02882ef8d.png) ![](https://img-blog.csdnimg.cn/img_convert/07ce1a919614bde78921fb2f8ddf0c2f.png) ![](https://img-blog.csdnimg.cn/img_convert/44238619c3ba2d672b5b8dc4a529b01d.png) 内容实在太多,不一一截图了 ### 黑客学习资源推荐 最后给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助! 对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。 #### 1️⃣零基础入门 ##### ① 学习路线 对于从来没有接触过网络安全的同学,我们帮你准备了详细的**学习成长路线图**。可以说是**最科学最系统的学习路线**,大家跟着这个大的方向学习准没问题。 ![image](https://img-blog.csdnimg.cn/img_convert/acb3c4714e29498573a58a3c79c775da.gif#pic_center) ##### ② 路线对应学习视频 同时每个成长路线对应的板块都有配套的视频提供: ![image-20231025112050764](https://img-blog.csdnimg.cn/874ad4fd3dbe4f6bb3bff17885655014.png#pic_center) **网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。** **[需要这份系统化资料的朋友,可以点击这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)** **一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576网址:2024年网络安全最全JavaSE基础 https://www.yuejiaxmz.com/news/view/768155
相关内容
自学(网络安全)黑客——高效学习2024安全基础网络建设方案
网络安全(黑客)自学,最全攻略,看这篇就够了!
网络安全(黑客)自学
网络安全(黑客)小白自学必看—最新寒假学习计划【2025年】
2025年网络安全零基础自学全攻略:避开弯路,快速上手!
零基础小白如何自学黑客(网络安全)?
【网络安全】黑客零基础入门教程(超详细)
网络安全(黑客)自学必看系列!
黑客(网络安全)技术自学——高效学习