PowerShell使用sudo提升为管理员权限
Windows下能否实现sudo一样的命令,来快速地对某一个标签页开启管理者权限呢?这里要介绍的gsudo就可以实现我们所要的功能。
安装gsudo
使用powershell安装:
1PowerShell -Command "Set-ExecutionPolicy RemoteSigned -scope Process; iwr -useb https://raw.githubusercontent.com/gerardog/gsudo/master/installgsudo.ps1 | iex"
安装成功,提示如下:
按要求,将C:\Users\Forget\apps\gsudo加入系统环境变量,重启powershell或Fluent Terminal即可使用sudo提权!
Powershell美化-Fluent Terminal和oh-my-posh
1. 安装Fluent TerminalMicrosoft Store搜索安装Fluent Terminal
2. 安装字体安装任意一款PowerLine字体,可以从这个GitHub仓库获取:点此链接下载
我安装的是更纱黑体:github地址
安装好字体之后在Fluent Terminal设置里选择。
3. 安装oh-my-poshpowershell管理员运行,依次执行下面命令:
1Set-ExecutionPolicy Bypass
1Install-Module posh-git -Scope CurrentUser
1Install-Module oh-my-posh -Scope CurrentUser
这里安装oh-my-posh可能会出现下载速度慢或下载失败的情况,可复制下载链接到浏览器中下载,下载的后缀为**.nupkg,改为.zip**后解压缩,放入C:\Program Files\WindowsPowerShell\Modules文件夹内(注意一定是 \Modules\模块名\模块的版本号\ 形式)。
1$PROFILE
查看到PowerShel ...
注解的使用
1. 注解的理解
jdk 5.0 新增的功能
Annotation 其实就是代码里的特殊标记, 这些标记可以在编译, 类加载, 运行时被读取, 并执行相应的处理。通过使用 Annotation,程序员可以在不改变原逻辑的情况下, 在源文件中嵌入一些补充信息
在JavaSE中,注解的使用目的比较简单,例如标记过时的功能,忽略警告等。在JavaEE/Android中注解占据了更重要的角色,例如用来配置应用程序的任何切面,代替JavaEE旧版中所遗留的繁冗代码和XML配置等。
框架 = 注解 + 反射机制 + 设计模式
2. 注解的使用示例
示例一:生成文档相关的注解
示例二:在编译时进行格式检查(JDK内置的个基本注解) @Override: 限定重写父类方法, 该注解只能用于方法 @Deprecated: 用于表示所修饰的元素(类, 方法等)已过时。通常是因为所修饰的结构危险或存在更好的择 @SuppressWarnings: 抑制编译器警告
示例:跟踪代码依赖性,实现替代配置文件功能
3. 如何自定义注解:参照@SuppressWarnings ...
Java比较器-Comparable,comparator
1. Java比较器的使用背景:Java中的对象,正常情况下,只能进行比较:== 或 != 。不能使用 > 或 < 的。但是在开发场景中,我们需要对多个对象进行排序,言外之意,就需要比较对象的大小。如何实现?使用两个接口中的任何一个:Comparable 或 Comparator
2. 自然排序:使用Comparable接口2.1 说明
像String、包装类等实现了Comparable接口,重写了compareTo(obj)方法,给出了比较两个对象大小的方式。
像String、包装类重写compareTo()方法以后,进行了从小到大的排列
重写compareTo(obj)的规则: 如果当前对象this大于形参对象obj,则返回正整数, 如果当前对象this小于形参对象obj,则返回负整数, 如果当前对象this等于形参对象obj,则返回零。
对于自定义类来说,如果需要排序,我们可以让自定义类实现Comparable接口,重写compareTo(obj)方法。在compareTo(obj)方法中指明如何排序
2.2 自定义类代码举 ...
wait()、sleep()、yield()、join()方法的区别
区别sleep()、yield()、join()都是Thread类的方法
wait()是Object类的方法
Tips
sleep抱着锁转为阻塞态,同时其他所有线程争抢cpu资源
yield抱着锁转为就绪态,只有和调用yield的线程优先级相同或更高的线程才有资格争抢cpu资源(调用yield的线程也加入争抢,所以会出现调用了yield的线程依旧继续执行的情况)
被其他线程调用join而被插队的线程必须等到join的线程执行完毕之后才会从阻塞态转为就绪态(被插了队就不敢吭声了!)
wait会放弃锁和cpu,转为阻塞态,需由notify或notifyAll唤醒。
wait只能在同步代码块或同步类中被调用,和notify、notifyAll搭配使用
使用wait可能会出现虚假唤醒,在循环中使用可避免!(判断用while替换if可解决虚假唤醒的问题)
常用的几个vagrant命令
$ vagrant init # 初始化
$ vagrant up # 启动虚拟机$ vagrant halt # 关闭虚拟机$ vagrant reload # 重启虚拟机$ vagrant ssh # SSH 至虚拟机$ vagrant suspend # 挂起虚拟机$ vagrant resume # 唤醒虚拟机$ vagrant status # 查看虚拟机运行状态$ vagrant destroy # 销毁当前虚拟机
#box管理命令$ vagrant box list # 查看本地box列表$ vagrant box add # 添加box到列表
$ vagrant box remove # 从box列表移除
多线程的创建和使用
1.内存结构:
进程可以细化为多个线程。
每个线程,拥有自己独立的:栈、程序计数器
多个线程,共享同一个进程中的结构:方法区、堆。
2.Thread中的常用方法:
start():启动当前线程;调用当前线程的run()
run(): 通常需要重写Thread类中的此方法,将创建的线程要执行的操作声明在此方法中
currentThread():静态方法,返回执行当前代码的线程
getName():获取当前线程的名字
setName():设置当前线程的名字 ...
JDK8中新日期时间API
1.日期时间API的迭代:第一代:jdk 1.0 Date类
第二代:jdk 1.1 Calendar类,一定程度上替换Date类
第三代:jdk 1.8 提出了新的一套API
2.前两代存在的问题举例:可变性:像日期和时间这样的类应该是不可变的。
偏移性:Date中的年份是从1900开始的,而月份都从0开始。
格式化:格式化只对Date用,Calendar则不行。
此外,它们也不是线程安全的;不能处理闰秒等。
3.java 8 中新的日期时间API涉及到的包
4.本地日期、本地时间、本地日期时间的使用:LocalDate / LocalTime / LocalDateTime4.1 说明:
① 分别表示使用 ISO-8601日历系统的日期、时间、日期和时间。它们提供了简单的本地日期或时间,并不包含当前的时间信息,也不包含与时区相关的信息。
② LocalDateTime相较于LocalDate、LocalTime,使用频率要高
③ 类似于Calendar
4.2 常用方法:
5.时间点:Instant5.1 说明:
① 时间线上的一个瞬时 ...
泛型的用法和注意事项
1.泛型的引入背景 集合容器类在设计阶段/声明阶段不能确定这个容器到底实际存的是什么类型的对象,所以在JDK1.5之前只能把元素类型设计为Object,JDK1.5之后使用泛型来解决。
2.自定义泛型类、泛型接口、泛型方法举例:
【Order.java】
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465public class Order<T> { String orderName; int orderId; //类的内部结构就可以使用类的泛型 T orderT; public Order(){ //编译不通过// T[] arr = new T[10]; //编译通过 T[] arr = (T[]) new Object[10]; } ...
enum枚举类的说明
1.枚举类的说明:
1.枚举类的理解:类的对象只有有限个,确定的。我们称此类为枚举类
2.当需要定义一组常量时,强烈建议使用枚举类
3.如果枚举类中只一个对象,则可以作为单例模式的实现方式。
2.如何自定义枚举类?步骤://自定义枚举类12345678910111213141516171819202122232425262728293031323334class Season{ //1.声明Season对象的属性:private final修饰 private final String seasonName; private final String seasonDesc; //2.私化类的构造器,并给对象属性赋值 private Season(String seasonName,String seasonDesc){ this.seasonName = seasonName; this.seasonDesc = seasonDesc; } //3.提供当前枚举类的多个对象:public static final的 public stat ...