问题:IDEA自带UML插件在Java项目中无法正常显示依赖项 问题原因:是启用中文插件包导致 解决方法:禁用中文插件 效果图 显示关系太杂太多? 可以进行设置,来避免显示一些不必要的线 闲谈 看别人的IDEA可以显示类间的依赖项,而我的“显示依赖项”按钮点破都没用 多次搜索无果(用Bing国内版),直到尝试用英文搜了一次问题,果然啊!还真有人问过,并解决了问题
Why UML diagrams do not show dependencies – IDEs Support (IntelliJ Platform) | JetBrains 解决回答: @!#@!$!@%@#!,dddd 希望bug早日修复
一、定义函数
很多重复的业务逻辑 重复出现的时候 我们可以使用函数
定义函数的格式如下:
def 函数名(): 代码 二、调用函数
定义了函数之后,就相当于有了一个具有某些功能的代码,想要让这些代码能够执行,需要调用它
使用 函数名() 调用
# 定义函数 def Siri(): print('hi Siri') print('现在几点了') print('现在1点了') # 调用函数 调用几次就写几个个函数名() 这里调用两次 Siri() Siri() ############## #结果 #>>hi Siri #>>现在几点了 #>>现在1点了 #>>hi Siri #>>现在几点了 #>>现在1点了 三、函数的参数
实例:使用函数来计算1和2的和
##def sum(): a = 1 b = 2 c = a + b print(c) sum()#>>3##位置传参 def sum(a,b): c = a + b print(c)sum(1,2) #调用带有参数的函数时,需要在小括号中传递数据#>>3 在定义函数时,小括号里写等待赋值的变量名 在调用函数时,小括号里写真正要进行运算的数据 ##关键字传参 def sum(a,b): c = a + b print(c)sum(a = 1,b = 2)#>>3 定义函数的时候 sum(a,b) a 和 b 为形式参数 简称形参 调用函数的时候 sum(1,2) 1 和 2 为实际参数 简称实参 四、函数返回值
步骤:
实现Callable接口,需要返回值类型 重写call方法,需要抛出异常 创建目标对象 创建执行服务:ExecutorService ser = Executors.newFixedThreadPool(1); 提交执行:Future<Boolean> result1 = ser.submit(t1); 获取结果: boolean r1 = result1.get(); 关闭服务: ser.shutdownNow(); 改造同步下载网络图片:
public class CallableThread implements Callable { private String url; private String name; public CallableThread(String url, String name) { this.url = url; this.name = name; } @Override public Boolean call() throws Exception { WebDownloader webDownloader = new WebDownloader(); webDownloader.downloader(this.url,this.name); return true; } public static void main(String[] args) throws ExecutionException, InterruptedException { CallableThread t1 = new CallableThread(https://yjsc.
今天开始学习Java,了解了Java的一些基本常识和跨平台原理
Java源文件经过Javac。exe编译为.class字节码文件,字节码文件只要产生就能在任何安装有Java虚拟机的操作系统平台上运行
Java.class文件动态的调ava.exe文件执行代码,Java.exe动态的调用Java虚拟机执行代码
Java的运行需要jdk(开发运行环境),jdk包含jre(运行环境)
jre中又有jvm(虚拟机)
jre里还有java运行时需要的动态库(.dlll)等文件构成运行环境
Java的变量命名规则和c语言很相似都是强类型定义,必须指定类型
Java的变量分为局部变量和成员变量
局部变量只存在于定义它所在的方法体也就是{}内
成员变量在全局有效
一个类产生相应的字节码(哪怕他是在同一源文件里面)
一个源文件能有多个类但只有一个可以加public
Java程序时从main()方法开始执行的的
下面给出一段代码框架
public class chen{
public static void main(String[] args){
System.out.println(hello,world);
}
}
MSVC对于UTF-8 without BOM格式支持不好,编译源码提示C4819告警,或者遇到源码中有中文行注释时编译不通过这样的诡异错误,解决方案为增加一个编译选项 /utf-8
1.Check status
sudo systemctl mysql status; 2.If not started mysql service
sudo service mysql start; sudo service mysql status; 3.Then log in mysql via below command
sudo mysql -u root -p And enter password.
4.
create database if not exists myDB; 5.
create table if not exist mt(BookIndex int not null,BookId bigint not null,BookName varchar(100) not null,BookTitle varchar(100) not null,primary key(BookIndex)); 6
使用SQL查询所有数据库名、表名和表字段名 MySQL中查询所有数据库名和表名 1.查询所有数据库
show databases; 2.查询指定数据库中所有表名
select table_name from information_schema.tables where table_schema='database_name' and table_type='base table'; 3.查询指定表中的所有字段名(ORDER BY ordinal_position,加入此排序可以按表设计字段返回顺序,不加则按字母排序)
select column_name from information_schema.columns where table_schema='database_name' and table_name='table_name' ORDER BY ordinal_position; 4.查询指定表中的所有字段名和字段类型
select column_name,data_type from information_schema.columns where table_schema='database_name' and table_name='table_name'; SQLServer中查询所有数据库名和表名 1.查询所有数据库
select * from sysdatabases; 2.查询当前数据库中所有表名
select * from sysobjects where xtype='U'; xtype='U':表示所有用户表,xtype='S':表示所有系统表。
3.查询指定表中的所有字段名
select name from syscolumns where id=Object_Id('table_name'); 4.查询指定表中的所有字段名和字段类型
select sc.name,st.name from syscolumns sc,systypes st where sc.
模拟买票的场景:张三、李四和王五一起买票。
代码:
public class TicketThread implements Runnable{ private int ticket =3; public static void main(String[] args) { TicketThread ticketThread = new TicketThread(); new Thread(ticketThread,张三).start(); new Thread(ticketThread,李四).start(); new Thread(ticketThread,王五).start(); } @Override public void run() { while (true){ if (ticket<=0){ break; } System.out.println(Thread.currentThread().getName()+买到的票号是+ticket--); } } } 结果:发现会买到重复的票,不符合逻辑。后续解决。
只有真正理解了Java中对象是什么,才能理解这个关键字是什么意思
字面解释 Java Guide中如此解释:
synchronized 关键字解决的是多个线程之间访问资源的同步性,synchronized关键字可以保证被它修饰的方法或者代码块在任意时刻只能有一个线程执行。
测试 但是这句话很多时候是有误导性的,synchronized这个关键字并不能保证同一时间只有一个线程访问,确切说,如果是用同一个对象调用方法的时候,方法的确是同一时间只能有一个线程访问:
class Solution { public static void main(String[] args) throws Exception { Node node1 = new Node(); Node node2 = new Node(); new Thread(node1::test).start(); new Thread(node1::test).start(); System.out.println(主线程结束); } } class Node { public synchronized void test() { System.out.println(!!!!!!); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(完成!!!); } } 输出为
!!!!!! 主线程结束 完成!!! !!!!!! 完成!!!
没有问题,一个时间走一个线程。
Exp6 MSF应用基础
目录Exp6 MSF应用基础一、实践内容1 一个主动攻击实践0 安装Win7虚拟机1 攻击前的准备1.1 关闭Win7防火墙1.2 打开445端口1.3 查看靶机IP地址2 执行攻击2 一个针对浏览器的攻击ms06_013_createtextrangeCVE-2019-5786漏洞配置靶机攻击过程3 一个针对客户端的攻击,以 adobe reader 为例4 辅助模块的使用二、问题回答1 用自己的话解释什么是exploit,payload,encode2 实践总结与体会3 离实战还缺哪些技术或步骤参考:李长兴学长——CVE-2019-5786漏洞复现
一、实践内容 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路。
1 一个主动攻击实践 使用 ms17-010 永恒之蓝漏洞对 win7 进行渗透
永恒之蓝是指2017年4月14日晚,黑客团体Shadow Brokers(影子经纪人)公布一大批网络攻击工具,其中包含“永恒之蓝”工具,“永恒之蓝”利用Windows系统的SMB漏洞可以获取系统最高权限。5月12日,不法分子通过改造“永恒之蓝”制作了wannacry勒索病毒,英国、俄罗斯、整个欧洲以及中国国内多个高校校内网、大型企业内网和政府机构专网中招,被勒索支付高额赎金才能解密恢复文件。
漏洞介绍 在微软官方的漏洞库中,有此漏洞的介绍与补丁,补丁编号:KB4013389。永恒之蓝相关病毒,其实是利用了微软的 MS17-010 漏洞。MS17-010 是 Windows 系统一个底层服务的漏洞,恶意代码会扫描开放 445 文件共享端口的 Windows 机器,无需用户任何操作,只要开机上网,不法分子就能在电脑和服务器中植入勒索软件、远程控制木马、虚拟货币挖矿机等恶意程序。 本实验使用 Win7 作为靶机来进行渗透测试 Win7 环境说明:IP 地址 192.168.81.129 ,防火墙状态关闭。
0 安装Win7虚拟机 本实验使用了Win7英文版的虚拟机,因此需要大家安装一下。过程并不繁琐,文件在3个G左右
迅雷下载种子:
ed2k://|file|en_windows_7_ultimate_with_sp1_x64_dvd_u_677332.iso|3320903680|743598C64E635C72964CF02A3E0AD547|/ 自行安装即可,如果使用VM,可以进行“简易安装”,实现一键部署。
1 攻击前的准备 1.1 关闭Win7防火墙 1.2 打开445端口 具体操作请参考:链接 1.